Skip to content

Commit 4681c81

Browse files
committed
Include language in ModuleEx
1 parent 4fc2e13 commit 4681c81

File tree

4 files changed

+8
-7
lines changed

4 files changed

+8
-7
lines changed

src/GHC/All.hs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,9 @@ data ParseError = ParseError
8484
}
8585

8686
-- | Result of 'parseModuleEx', representing a parsed module.
87-
newtype ModuleEx = ModuleEx {
87+
data ModuleEx = ModuleEx {
8888
ghcModule :: Located HsModule
89+
, ghcLanguage :: Maybe Language
8990
}
9091

9192
-- | Extract a complete list of all the comments in a module.
@@ -147,10 +148,10 @@ parseDeclGhcWithMode parseMode s =
147148
-- | Create a 'ModuleEx' from a GHC module. It is assumed the incoming
148149
-- parsed module has not been adjusted to account for operator
149150
-- fixities (it uses the HLint default fixities).
150-
createModuleEx :: Located HsModule -> ModuleEx
151+
createModuleEx :: Located HsModule -> Maybe Language -> ModuleEx
151152
createModuleEx = createModuleExWithFixities (map toFixity defaultFixities)
152153

153-
createModuleExWithFixities :: [(String, Fixity)] -> Located HsModule -> ModuleEx
154+
createModuleExWithFixities :: [(String, Fixity)] -> Located HsModule -> Maybe Language -> ModuleEx
154155
createModuleExWithFixities fixities ast =
155156
ModuleEx (applyFixities (fixitiesFromModule ast ++ fixities) ast)
156157

@@ -188,7 +189,7 @@ parseModuleEx flags file str = timedIO "Parse" file $ runExceptT $ do
188189
ExceptT $ parseFailureErr dynFlags str file str errs
189190
else do
190191
let fixes = fixitiesFromModule a ++ ghcFixitiesFromParseFlags flags
191-
pure $ ModuleEx (applyFixities fixes a)
192+
pure $ ModuleEx (applyFixities fixes a) (language dynFlags)
192193
PFailed s ->
193194
ExceptT $ parseFailureErr dynFlags str file str $ bagToList . getMessages $ GhcPsMessage <$> snd (getPsMessages s)
194195
where

src/Hint/Duplicate.hs

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import GHC.Types.Name.Occurrence
2222
import GHC.Types.Name.Reader
2323

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

src/Hint/Unsafe.hs

Lines changed: 1 addition & 1 deletion
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)