Skip to content

Commit 493d01f

Browse files
authored
Merge pull request #169 from locallycompact/main
ghc 9.8 compat
2 parents 50cc10e + e29d06f commit 493d01f

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

src/Hint/GHC.hs

+24-2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ import GHC as X hiding (Phase, GhcT, parseDynamicFlags, runGhcT, showGhcExceptio
4747
)
4848
import Control.Monad.Ghc as X (GhcT, runGhcT)
4949

50+
#if MIN_VERSION_ghc(9,8,0)
51+
import GHC.Types.Error (ResolvedDiagnosticReason(..), Messages)
52+
import GHC.Driver.Errors.Types (DriverMessage)
53+
#endif
54+
5055
#if MIN_VERSION_ghc(9,4,0)
5156
import GHC.Types.SourceError as X (SourceError, srcErrorMessages)
5257

@@ -429,7 +434,18 @@ putLogMsg :: Logger -> DynFlags -> WarnReason -> Severity -> SrcSpan -> SDoc ->
429434
pushLogHook :: (GHC.LogAction -> GHC.LogAction) -> Logger -> Logger
430435
modifyLogger :: GhcMonad m => (Logger -> Logger) -> m ()
431436
mkLogAction :: (String -> a) -> IORef [a] -> GHC.LogAction
432-
#if MIN_VERSION_ghc(9,6,0)
437+
#if MIN_VERSION_ghc(9,8,0)
438+
data WarnReason = NoReason
439+
type Logger = GHC.Logger
440+
initLogger = GHC.initLogger
441+
putLogMsg logger _df _wn sev = GHC.putLogMsg logger (GHC.logFlags logger) (GHC.MCDiagnostic sev (ResolvedDiagnosticReason GHC.ErrorWithoutFlag) Nothing)
442+
pushLogHook = GHC.pushLogHook
443+
modifyLogger = GHC.modifyLogger
444+
mkLogAction f r = \lf mc src msg ->
445+
let renderErrMsg = GHC.renderWithContext (GHC.log_default_user_context lf)
446+
errorEntry = f (renderErrMsg (GHC.mkLocMessage mc src msg))
447+
in modifyIORef r (errorEntry :)
448+
#elif MIN_VERSION_ghc(9,6,0)
433449
data WarnReason = NoReason
434450
type Logger = GHC.Logger
435451
initLogger = GHC.initLogger
@@ -606,12 +622,18 @@ setBackendToInterpreter df = df{hscTarget = HscInterpreted}
606622
#endif
607623

608624
-- parseDynamicFlags
609-
parseDynamicFlags :: MonadIO m => Logger -> DynFlags -> [Located String] -> m (DynFlags, [Located String], [Warn])
625+
626+
#if MIN_VERSION_ghc(9,8,0)
627+
parseDynamicFlags :: MonadIO m => Logger -> DynFlags -> [Located String] -> m (DynFlags, [Located String], Messages DriverMessage)
628+
parseDynamicFlags = GHC.parseDynamicFlags
629+
#else
610630
#if MIN_VERSION_ghc(9,2,0)
631+
parseDynamicFlags :: MonadIO m => Logger -> DynFlags -> [Located String] -> m (DynFlags, [Located String], [Warn])
611632
parseDynamicFlags = GHC.parseDynamicFlags
612633
#else
613634
parseDynamicFlags _ = GHC.parseDynamicFlags
614635
#endif
636+
#endif
615637

616638
pprTypeForUser :: Type -> SDoc
617639
#if MIN_VERSION_ghc(9,4,0)

0 commit comments

Comments
 (0)