on master help sign in
Fix cross package goto definition (#1834)

The reason for why it was broken was rather simple: We just lost the non-compat logic somewhere along the way. fixes #1582

commitbf2cbd259cc80c34169a7606fce41c6daf9d0518 authorMoritz Kiefer <moritz.kiefer@purelyfunctional.org> dateMon 24 Jun 2019, 11:18 (7 years ago) parentc1c4851
2 files changed+11−3
src/Development/IDE/Core/Rules.hs+1−1 src/Development/IDE/GHC/Compat.hs+10−2
src/Development/IDE/Core/Rules.hs+1−1
@@ -281,7 +281,7 @@ getHieFileRule =
281281 defineNoFile $ \(GetHieFile f) -> do
282282 u <- liftIO $ mkSplitUniqSupply 'a'
283283 let nameCache = initNameCache u []
284− liftIO $ fmap fst $ readHieFile nameCache f
284+ liftIO $ fmap (hie_file_result . fst) $ readHieFile nameCache f
285285
286286-- | A rule that wires per-file rules together
287287mainRule :: Rules ()
src/Development/IDE/GHC/Compat.hs+10−2
@@ -5,12 +5,18 @@
55
66-- | Attempt at hiding the GHC version differences we can.
77module Development.IDE.GHC.Compat(
8+ HieFileResult(..),
89 HieFile(..),
910 mkHieFile,
1011 writeHieFile,
1112 readHieFile
1213 ) where
1314
15+#ifndef GHC_STABLE
16+import HieAst
17+import HieBin
18+import HieTypes
19+#else
1420import GHC
1521import GhcPlugins
1622import NameCache
@@ -24,7 +30,9 @@ mkHieFile _ _ _ = return (HieFile () [])
2430writeHieFile :: FilePath -> HieFile -> IO ()
2531writeHieFile _ _ = return ()
2632
27−readHieFile :: NameCache -> FilePath -> IO (HieFile, ())
28−readHieFile _ _ = return (HieFile () [], ())
33+readHieFile :: NameCache -> FilePath -> IO (HieFileResult, ())
34+readHieFile _ _ = return (HieFileResult (HieFile () []), ())
2935
3036data HieFile = HieFile {hie_module :: (), hie_exports :: [AvailInfo]}
37+data HieFileResult = HieFileResult { hie_file_result :: HieFile }
38+#endif