Skip to content

Commit 74297f3

Browse files
committed
Include language in ModuleEx
1 parent 4620d86 commit 74297f3

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

src/GHC/All.hs

+5-4
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ data ParseError = ParseError
8989
}
9090

9191
-- | Result of 'parseModuleEx', representing a parsed module.
92-
newtype ModuleEx = ModuleEx {
92+
data ModuleEx = ModuleEx {
9393
ghcModule :: Located (HsModule GhcPs)
94+
, ghcLanguage :: Maybe Language
9495
}
9596

9697
-- | Extract a complete list of all the comments in a module.
@@ -159,10 +160,10 @@ parseDeclGhcWithMode parseMode s =
159160
-- | Create a 'ModuleEx' from a GHC module. It is assumed the incoming
160161
-- parsed module has not been adjusted to account for operator
161162
-- fixities (it uses the HLint default fixities).
162-
createModuleEx :: Located (HsModule GhcPs) -> ModuleEx
163+
createModuleEx :: Located (HsModule GhcPs) -> Maybe Language -> ModuleEx
163164
createModuleEx = createModuleExWithFixities (map toFixity defaultFixities)
164165

165-
createModuleExWithFixities :: [(String, Fixity)] -> Located (HsModule GhcPs) -> ModuleEx
166+
createModuleExWithFixities :: [(String, Fixity)] -> Located (HsModule GhcPs) -> Maybe Language -> ModuleEx
166167
createModuleExWithFixities fixities ast =
167168
ModuleEx (applyFixities (fixitiesFromModule ast ++ fixities) ast)
168169

@@ -214,7 +215,7 @@ parseModuleEx flags file str = timedIO "Parse" file $ runExceptT $ do
214215
ExceptT $ parseFailureErr dynFlags str file str $ NE.fromList errs
215216
else do
216217
let fixes = fixitiesFromModule a ++ ghcFixitiesFromParseFlags flags
217-
pure $ ModuleEx (applyFixities fixes a)
218+
pure $ ModuleEx (applyFixities fixes a) (language dynFlags)
218219
PFailed s ->
219220
ExceptT $ parseFailureErr dynFlags str file str $ NE.fromList . bagToList . getMessages $ GhcPsMessage <$> snd (getPsMessages s)
220221
where

src/Hint/Duplicate.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ duplicateHint ms =
5757
]
5858
where
5959
ds = [(modName m, fromMaybe "" (declName d), unLoc d)
60-
| ModuleEx m <- map snd ms
60+
| ModuleEx {ghcModule = m} <- map snd ms
6161
, d <- hsmodDecls (unLoc m)]
6262

6363
dupes :: (Outputable e, Data e) => [(String, String, [LocatedA e])] -> [Idea]

src/Hint/Export.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import GHC.Types.Name.Occurrence
2121
import GHC.Types.Name.Reader
2222

2323
exportHint :: ModuHint
24-
exportHint _ (ModuleEx (L s m@HsModule {hsmodName = Just name, hsmodExports = exports}) )
24+
exportHint _ ModuleEx {ghcModule = L s m@HsModule {hsmodName = Just name, hsmodExports = exports}}
2525
| Nothing <- exports =
2626
let r = o{ hsmodExports = Just (noLocA [noLocA (IEModuleContents (Nothing, noAnn) name)] )} in
2727
[(ignore "Use module export list" (L s o) (noLoc r) []){ideaNote = [Note "an explicit list is usually better"]}]

src/Hint/Unsafe.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import Language.Haskell.GhclibParserEx.GHC.Utils.Outputable
4646
-- @
4747
-- is. We advise that such constants should have a @NOINLINE@ pragma.
4848
unsafeHint :: DeclHint
49-
unsafeHint _ (ModuleEx (L _ m)) = \ld@(L loc d) ->
49+
unsafeHint _ ModuleEx {ghcModule = L _ m} = \ld@(L loc d) ->
5050
[rawIdea Hint.Type.Warning "Missing NOINLINE pragma" (locA loc)
5151
(unsafePrettyPrint d)
5252
(Just $ trimStart (unsafePrettyPrint $ gen x) ++ "\n" ++ unsafePrettyPrint d)

0 commit comments

Comments
 (0)