@@ -89,8 +89,9 @@ data ParseError = ParseError
89
89
}
90
90
91
91
-- | Result of 'parseModuleEx', representing a parsed module.
92
- newtype ModuleEx = ModuleEx {
92
+ data ModuleEx = ModuleEx {
93
93
ghcModule :: Located (HsModule GhcPs )
94
+ , ghcLanguage :: Maybe Language
94
95
}
95
96
96
97
-- | Extract a complete list of all the comments in a module.
@@ -159,10 +160,10 @@ parseDeclGhcWithMode parseMode s =
159
160
-- | Create a 'ModuleEx' from a GHC module. It is assumed the incoming
160
161
-- parsed module has not been adjusted to account for operator
161
162
-- fixities (it uses the HLint default fixities).
162
- createModuleEx :: Located (HsModule GhcPs ) -> ModuleEx
163
+ createModuleEx :: Located (HsModule GhcPs ) -> Maybe Language -> ModuleEx
163
164
createModuleEx = createModuleExWithFixities (map toFixity defaultFixities)
164
165
165
- createModuleExWithFixities :: [(String , Fixity )] -> Located (HsModule GhcPs ) -> ModuleEx
166
+ createModuleExWithFixities :: [(String , Fixity )] -> Located (HsModule GhcPs ) -> Maybe Language -> ModuleEx
166
167
createModuleExWithFixities fixities ast =
167
168
ModuleEx (applyFixities (fixitiesFromModule ast ++ fixities) ast)
168
169
@@ -214,7 +215,7 @@ parseModuleEx flags file str = timedIO "Parse" file $ runExceptT $ do
214
215
ExceptT $ parseFailureErr dynFlags str file str $ NE. fromList errs
215
216
else do
216
217
let fixes = fixitiesFromModule a ++ ghcFixitiesFromParseFlags flags
217
- pure $ ModuleEx (applyFixities fixes a)
218
+ pure $ ModuleEx (applyFixities fixes a) (language dynFlags)
218
219
PFailed s ->
219
220
ExceptT $ parseFailureErr dynFlags str file str $ NE. fromList . bagToList . getMessages $ GhcPsMessage <$> snd (getPsMessages s)
220
221
where
0 commit comments