1
- {-# LANGUAGE CPP #-}
1
+ {-# LANGUAGE CPP #-}
2
+ {-# LANGUAGE PatternSynonyms #-}
2
3
3
4
-- | Parser compaibility module.
4
5
module Development.IDE.GHC.Compat.Parser (
@@ -17,8 +18,21 @@ module Development.IDE.GHC.Compat.Parser (
17
18
#if MIN_VERSION_ghc(9,0,0)
18
19
PsSpan (.. ),
19
20
#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
22
36
mkApiAnns ,
23
37
-- * API Annotations
24
38
Anno. AnnKeywordId (.. ),
@@ -28,15 +42,25 @@ module Development.IDE.GHC.Compat.Parser (
28
42
) where
29
43
30
44
#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
31
48
import qualified GHC.Parser.Annotation as Anno
32
49
import qualified GHC.Parser.Lexer as Lexer
33
50
import GHC.Types.SrcLoc (PsSpan (.. ))
34
51
#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
35
56
import qualified GHC.Driver.Config as Config
57
+ import GHC.Hs (hpm_module , hpm_src_files )
58
+ import qualified GHC.Hs as GHC
36
59
import GHC.Parser.Lexer hiding (initParserState )
37
60
#endif
38
61
#else
39
62
import qualified ApiAnnotation as Anno
63
+ import qualified HscTypes as GHC
40
64
import Lexer
41
65
import qualified SrcLoc
42
66
#endif
@@ -45,6 +69,7 @@ import Development.IDE.GHC.Compat.Util
45
69
46
70
#if !MIN_VERSION_ghc(9,2,0)
47
71
import qualified Data.Map as Map
72
+ import qualified GHC
48
73
#endif
49
74
50
75
#if !MIN_VERSION_ghc(9,0,0)
@@ -79,27 +104,31 @@ type ApiAnns = ()
79
104
type ApiAnns = Anno. ApiAnns
80
105
#endif
81
106
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
90
117
#endif
91
118
92
119
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 }
101
131
#endif
102
- }
103
132
104
133
mkApiAnns :: PState -> ApiAnns
105
134
#if MIN_VERSION_ghc(9,2,0)
0 commit comments