Skip to content

Commit f4a6a1b

Browse files
committed
HsParsedModule
1 parent 664ec28 commit f4a6a1b

File tree

8 files changed

+70
-38
lines changed

8 files changed

+70
-38
lines changed

ghcide/src/Development/IDE/Core/Compile.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -921,7 +921,7 @@ parseFileContents env customPreprocessor filename ms = do
921921
-- filter them out:
922922
srcs2 <- liftIO $ filterM doesFileExist srcs1
923923

924-
let pm = mkParsedModule ms parsed' srcs2 hpm_annotations
924+
let pm = ParsedModule ms parsed' srcs2 hpm_annotations
925925
warnings = diagFromErrMsgs "parser" dflags warns
926926
pure (warnings ++ preproc_warnings, pm)
927927

ghcide/src/Development/IDE/Core/Rules.hs

+1-2
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ import Development.IDE.Core.PositionMapping
106106
import Development.IDE.Core.RuleTypes
107107
import Development.IDE.Core.Service
108108
import Development.IDE.Core.Shake
109-
import Development.IDE.GHC.Compat.Env
110-
import Development.IDE.GHC.Compat.Core hiding
109+
import Development.IDE.GHC.Compat hiding
111110
(parseModule,
112111
TargetId(..),
113112
loadInterface,

ghcide/src/Development/IDE/GHC/Compat/Core.hs

+11-4
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,7 @@ module Development.IDE.GHC.Compat.Core (
149149
-- * TcGblEnv
150150
TcGblEnv(..),
151151
-- * Parsing and LExer types
152-
HsParsedModule(..),
153-
GHC.ParsedModule(..),
152+
HsModule(..),
154153
GHC.ParsedSource,
155154
GHC.RenamedSource,
156155
-- * Compilation Main
@@ -195,6 +194,9 @@ module Development.IDE.GHC.Compat.Core (
195194
pattern RealSrcLoc,
196195
SrcLoc.SrcLoc(SrcLoc.UnhelpfulLoc),
197196
BufSpan,
197+
#if MIN_VERSION_ghc(9,2,0)
198+
SrcSpanAnn',
199+
#endif
198200
SrcLoc.leftmost_smallest,
199201
SrcLoc.containsSpan,
200202
SrcLoc.mkGeneralSrcSpan,
@@ -277,6 +279,9 @@ module Development.IDE.GHC.Compat.Core (
277279
-- * Panic
278280
PlainGhcException,
279281
panic,
282+
-- * Other
283+
GHC.CoreModule(..),
284+
GHC.SafeHaskellMode(..),
280285
-- * Util Module re-exports
281286
#if MIN_VERSION_ghc(9,0,0)
282287
module GHC.Builtin.Names,
@@ -310,6 +315,7 @@ module Development.IDE.GHC.Compat.Core (
310315

311316
#if MIN_VERSION_ghc(9,2,0)
312317
module GHC.Hs.Decls,
318+
module GHC.Hs.Doc,
313319
module GHC.Hs.Extension,
314320
module GHC.Hs.ImpExp,
315321
module GHC.Hs.Pat,
@@ -470,8 +476,9 @@ import GHC.Driver.Plugins
470476
import GHC.Driver.Session hiding (ExposePackage)
471477
import qualified GHC.Driver.Session as DynFlags
472478
#if MIN_VERSION_ghc(9,2,0)
473-
import GHC.Hs (HsParsedModule (..))
479+
import GHC.Hs (HsModule (..), SrcSpanAnn')
474480
import GHC.Hs.Decls hiding (FunDep)
481+
import GHC.Hs.Doc
475482
import GHC.Hs.Extension
476483
import GHC.Hs.ImpExp
477484
import GHC.Hs.Pat
@@ -672,7 +679,7 @@ import Var (Var (varName), setTyVarUnique,
672679
#if MIN_VERSION_ghc(8,10,0)
673680
import Coercion (coercionKind)
674681
import Predicate
675-
import SrcLoc (SrcLoc (UnhelpfulLoc),
682+
import SrcLoc (Located, SrcLoc (UnhelpfulLoc),
676683
SrcSpan (UnhelpfulSpan))
677684
#else
678685
import SrcLoc (RealLocated,

ghcide/src/Development/IDE/GHC/Compat/Parser.hs

+49-20
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
{-# LANGUAGE CPP #-}
1+
{-# LANGUAGE CPP #-}
2+
{-# LANGUAGE PatternSynonyms #-}
23

34
-- | Parser compaibility module.
45
module Development.IDE.GHC.Compat.Parser (
@@ -17,8 +18,21 @@ module Development.IDE.GHC.Compat.Parser (
1718
#if MIN_VERSION_ghc(9,0,0)
1819
PsSpan(..),
1920
#endif
20-
mkHsParsedModule,
21-
mkParsedModule,
21+
#if MIN_VERSION_ghc(9,2,0)
22+
pattern HsParsedModule,
23+
type GHC.HsParsedModule,
24+
Development.IDE.GHC.Compat.Parser.hpm_module,
25+
Development.IDE.GHC.Compat.Parser.hpm_src_files,
26+
Development.IDE.GHC.Compat.Parser.hpm_annotations,
27+
pattern ParsedModule,
28+
type GHC.ParsedModule,
29+
Development.IDE.GHC.Compat.Parser.pm_mod_summary,
30+
Development.IDE.GHC.Compat.Parser.pm_extra_src_files,
31+
Development.IDE.GHC.Compat.Parser.pm_annotations,
32+
#else
33+
GHC.HsParsedModule(..),
34+
GHC.ParsedModule(..),
35+
#endif
2236
mkApiAnns,
2337
-- * API Annotations
2438
Anno.AnnKeywordId(..),
@@ -28,15 +42,25 @@ module Development.IDE.GHC.Compat.Parser (
2842
) where
2943

3044
#if MIN_VERSION_ghc(9,0,0)
45+
#if !MIN_VERSION_ghc(9,2,0)
46+
import qualified GHC.Driver.Types as GHC
47+
#endif
3148
import qualified GHC.Parser.Annotation as Anno
3249
import qualified GHC.Parser.Lexer as Lexer
3350
import GHC.Types.SrcLoc (PsSpan (..))
3451
#if MIN_VERSION_ghc(9,2,0)
52+
import GHC (pm_extra_src_files,
53+
pm_mod_summary,
54+
pm_parsed_source)
55+
import qualified GHC
3556
import qualified GHC.Driver.Config as Config
57+
import GHC.Hs (hpm_module, hpm_src_files)
58+
import qualified GHC.Hs as GHC
3659
import GHC.Parser.Lexer hiding (initParserState)
3760
#endif
3861
#else
3962
import qualified ApiAnnotation as Anno
63+
import qualified HscTypes as GHC
4064
import Lexer
4165
import qualified SrcLoc
4266
#endif
@@ -45,6 +69,7 @@ import Development.IDE.GHC.Compat.Util
4569

4670
#if !MIN_VERSION_ghc(9,2,0)
4771
import qualified Data.Map as Map
72+
import qualified GHC
4873
#endif
4974

5075
#if !MIN_VERSION_ghc(9,0,0)
@@ -79,27 +104,31 @@ type ApiAnns = ()
79104
type ApiAnns = Anno.ApiAnns
80105
#endif
81106

82-
83-
mkHsParsedModule :: ParsedSource -> [FilePath] -> ApiAnns -> HsParsedModule
84-
mkHsParsedModule parsed fps hpm_annotations =
85-
HsParsedModule
86-
parsed
87-
fps
88-
#if !MIN_VERSION_ghc(9,2,0)
89-
hpm_annotations
107+
#if MIN_VERSION_ghc(9,2,0)
108+
pattern HsParsedModule :: Located HsModule -> [FilePath] -> ApiAnns -> GHC.HsParsedModule
109+
pattern HsParsedModule
110+
{ hpm_module
111+
, hpm_src_files
112+
, hpm_annotations
113+
} <- ( (,()) -> (GHC.HsParsedModule{..}, hpm_annotations))
114+
where
115+
HsParsedModule hpm_module hpm_src_files hpm_annotations =
116+
GHC.HsParsedModule hpm_module hpm_src_files
90117
#endif
91118

92119

93-
mkParsedModule :: ModSummary -> ParsedSource -> [FilePath] -> ApiAnns -> ParsedModule
94-
mkParsedModule ms parsed extra_src_files _hpm_annotations =
95-
ParsedModule {
96-
pm_mod_summary = ms
97-
, pm_parsed_source = parsed
98-
, pm_extra_src_files = extra_src_files
99-
#if !MIN_VERSION_ghc(9,2,0)
100-
, pm_annotations = _hpm_annotations
120+
#if MIN_VERSION_ghc(9,2,0)
121+
pattern ParsedModule :: ModSummary -> ParsedSource -> [FilePath] -> ApiAnns -> GHC.ParsedModule
122+
pattern ParsedModule
123+
{ pm_mod_summary
124+
, pm_parsed_source
125+
, pm_extra_src_files
126+
, pm_annotations
127+
} <- ( (,()) -> (GHC.ParsedModule{..}, pm_annotations))
128+
where
129+
ParsedModule ms parsed extra_src_files _anns =
130+
GHC.ParsedModule { pm_mod_summary = ms , pm_parsed_source = parsed , pm_extra_src_files = extra_src_files }
101131
#endif
102-
}
103132

104133
mkApiAnns :: PState -> ApiAnns
105134
#if MIN_VERSION_ghc(9,2,0)

ghcide/src/Development/IDE/GHC/Compat/Plugins.hs

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ module Development.IDE.GHC.Compat.Plugins (
1717
#endif
1818
) where
1919

20-
import GHC
2120
#if MIN_VERSION_ghc(9,0,0)
2221
#if MIN_VERSION_ghc(9,2,0)
2322
import qualified GHC.Driver.Env as Env
@@ -51,7 +50,7 @@ applyPluginsParsedResultAction env dflags ms hpm_annotations parsed = do
5150
dflags
5251
#endif
5352
applyPluginAction
54-
(mkHsParsedModule parsed [] hpm_annotations)
53+
(HsParsedModule parsed [] hpm_annotations)
5554

5655
initializePlugins :: HscEnv -> IO HscEnv
5756
initializePlugins env = do

ghcide/src/Development/IDE/GHC/Orphans.hs

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import qualified StringBuffer as SB
2525
import Unique (getKey)
2626
#endif
2727

28-
import GHC
2928

3029
import Retrie.ExactPrint (Annotated)
3130

plugins/hls-hlint-plugin/src/Ide/Plugin/Hlint.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ import Refact.Apply
5555

5656
#ifdef HLINT_ON_GHC_LIB
5757
import Data.List (nub)
58-
import Development.IDE.GHC.Compat.Core (BufSpan,
58+
import Development.IDE.GHC.Compat (BufSpan,
5959
DynFlags,
6060
extensionFlags,
6161
ms_hspp_opts,
@@ -79,7 +79,7 @@ import System.IO (IOMode (Wri
7979
withFile)
8080
import System.IO.Temp
8181
#else
82-
import Development.IDE.GHC.Compat.Core hiding
82+
import Development.IDE.GHC.Compat hiding
8383
(setEnv)
8484
import Language.Haskell.GHC.ExactPrint.Delta (deltaOptions)
8585
import Language.Haskell.GHC.ExactPrint.Parsers (postParseTransform)
@@ -109,7 +109,7 @@ import GHC.Generics (Associativi
109109
Generic)
110110
import Text.Regex.TDFA.Text ()
111111

112-
import Development.IDE.GHC.Compat.Core (WarningFlag (Opt_WarnUnrecognisedPragmas),
112+
import Development.IDE.GHC.Compat (WarningFlag (Opt_WarnUnrecognisedPragmas),
113113
wopt)
114114
import Development.IDE.Spans.Pragmas (LineSplitTextEdits (LineSplitTextEdits),
115115
NextPragmaInfo (NextPragmaInfo),

plugins/hls-qualify-imported-names-plugin/src/Ide/Plugin/QualifyImportedNames.hs

+4-5
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,18 @@ import Development.IDE.Core.RuleTypes (GetFileContents (GetFileCont
2828
import Development.IDE.Core.Service (runAction)
2929
import Development.IDE.Core.Shake (IdeState, use)
3030
import Development.IDE.GHC.Compat (ContextInfo (Use),
31-
Identifier,
32-
IdentifierDetails (IdentifierDetails, identInfo),
33-
RefMap, Span)
34-
import Development.IDE.GHC.Compat.Core (GenLocated (L), GhcPs,
31+
GenLocated (..), GhcPs,
3532
GlobalRdrElt (GRE, gre_imp, gre_name),
3633
GlobalRdrEnv,
3734
HsModule (hsmodImports),
35+
Identifier,
36+
IdentifierDetails (IdentifierDetails, identInfo),
3837
ImpDeclSpec (ImpDeclSpec, is_as, is_dloc, is_qual),
3938
ImportSpec (ImpSpec),
4039
LImportDecl, ModuleName,
4140
Name, NameEnv, OccName,
4241
ParsedModule (ParsedModule, pm_parsed_source),
43-
SrcSpan,
42+
RefMap, Span, SrcSpan,
4443
TcGblEnv (tcg_rdr_env),
4544
emptyUFM, globalRdrEnvElts,
4645
lookupNameEnv,

0 commit comments

Comments
 (0)