1
1
{-# LANGUAGE TemplateHaskell #-}
2
+ {-# LANGUAGE CPP #-}
2
3
module Development.IDE.GHC.Compat.Error (
3
4
-- * Top-level error types and lens for easy access
4
5
MsgEnvelope (.. ),
@@ -7,7 +8,7 @@ module Development.IDE.GHC.Compat.Error (
7
8
-- * Error messages for the typechecking and renamer phase
8
9
TcRnMessage (.. ),
9
10
TcRnMessageDetailed (.. ),
10
- flatTcRnMessage ,
11
+ stripTcRnMessageContext ,
11
12
-- * Parsing error message
12
13
PsMessage (.. ),
13
14
-- * Desugaring diagnostic
@@ -52,13 +53,15 @@ _GhcDriverMessage = prism' GhcDriverMessage (\case
52
53
-- | Some 'TcRnMessage's are nested in other constructors for additional context.
53
54
-- For example, 'TcRnWithHsDocContext' and 'TcRnMessageWithInfo'.
54
55
-- However, in some occasions you don't need the additional context and you just want
55
- -- the error message. @'flatTcRnMessage '@ recursively unwraps these constructors,
56
+ -- the error message. @'stripTcRnMessageContext '@ recursively unwraps these constructors,
56
57
-- until there are no more constructors with additional context.
57
58
--
58
- flatTcRnMessage :: TcRnMessage -> TcRnMessage
59
- flatTcRnMessage = \ case
60
- TcRnWithHsDocContext _ tcMsg -> flatTcRnMessage tcMsg
61
- TcRnMessageWithInfo _ (TcRnMessageDetailed _ tcMsg) -> flatTcRnMessage tcMsg
59
+ stripTcRnMessageContext :: TcRnMessage -> TcRnMessage
60
+ stripTcRnMessageContext = \ case
61
+ #if MIN_VERSION_ghc(9, 6, 1)
62
+ TcRnWithHsDocContext _ tcMsg -> stripTcRnMessageContext tcMsg
63
+ #endif
64
+ TcRnMessageWithInfo _ (TcRnMessageDetailed _ tcMsg) -> stripTcRnMessageContext tcMsg
62
65
msg -> msg
63
66
64
67
msgEnvelopeErrorL :: Lens' (MsgEnvelope e ) e
0 commit comments