-
-
Notifications
You must be signed in to change notification settings - Fork 437
Expand file tree
/
Copy pathLogger.hs
More file actions
35 lines (28 loc) · 1.34 KB
/
Logger.hs
File metadata and controls
35 lines (28 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{-# LANGUAGE CPP #-}
-- | Compat module for logger infrastructure.
module Development.IDE.GHC.Compat.Logger (
putLogHook,
Logger.pushLogHook,
-- * Logging stuff
LogActionCompat,
logActionCompat,
defaultLogActionHPutStrDoc,
) where
import Development.IDE.GHC.Compat.Core
import Development.IDE.GHC.Compat.Env as Env
import Development.IDE.GHC.Compat.Outputable
import GHC.Types.Error
import GHC.Utils.Logger as Logger
import GHC.Utils.Outputable
putLogHook :: Logger -> HscEnv -> HscEnv
putLogHook logger env =
env { hsc_logger = logger }
type LogActionCompat = LogFlags -> Maybe DiagnosticReason -> Maybe Severity -> SrcSpan -> PrintUnqualified -> SDoc -> IO ()
-- alwaysQualify seems to still do the right thing here, according to the "unqualified warnings" test.
logActionCompat :: LogActionCompat -> LogAction
#if MIN_VERSION_ghc(9,7,0)
logActionCompat logAction logFlags (MCDiagnostic severity (ResolvedDiagnosticReason wr) _) loc = logAction logFlags (Just wr) (Just severity) loc alwaysQualify
#else
logActionCompat logAction logFlags (MCDiagnostic severity wr _) loc = logAction logFlags (Just wr) (Just severity) loc alwaysQualify
#endif
logActionCompat logAction logFlags _cls loc = logAction logFlags Nothing Nothing loc alwaysQualify