Safe Haskell | None |
---|---|
Language | GHC2021 |
Source errors
Synopsis
- newtype SourceError = SourceError (Messages GhcMessage)
- mkSrcErr :: Messages GhcMessage -> SourceError
- srcErrorMessages :: SourceError -> Messages GhcMessage
- throwErrors :: MonadIO io => Messages GhcMessage -> io a
- throwOneError :: MonadIO io => MsgEnvelope GhcMessage -> io a
- handleSourceError :: MonadCatch m => (SourceError -> m a) -> m a -> m a
Documentation
newtype SourceError Source #
A source error is an error that is caused by one or more errors in the
source code. A SourceError
is thrown by many functions in the
compilation pipeline. Inside GHC these errors are merely printed via
log_action
, but API clients may treat them differently, for example,
insert them into a list box. If you want the default behaviour, use the
idiom:
handleSourceError printExceptionAndWarnings $ do ... api calls that may fail ...
The SourceError
s error messages can be accessed via srcErrorMessages
.
This list may be empty if the compiler failed due to -Werror
(Opt_WarnIsError
).
See printExceptionAndWarnings
for more information on what to take care
of when writing a custom error handler.
Instances
Exception SourceError Source # | |
Defined in GHC.Types.SourceError toException :: SourceError -> SomeException # fromException :: SomeException -> Maybe SourceError # displayException :: SourceError -> String # backtraceDesired :: SourceError -> Bool # | |
Show SourceError Source # | |
Defined in GHC.Types.SourceError showsPrec :: Int -> SourceError -> ShowS # show :: SourceError -> String # showList :: [SourceError] -> ShowS # |
mkSrcErr :: Messages GhcMessage -> SourceError Source #
throwErrors :: MonadIO io => Messages GhcMessage -> io a Source #
throwOneError :: MonadIO io => MsgEnvelope GhcMessage -> io a Source #
:: MonadCatch m | |
=> (SourceError -> m a) | exception handler |
-> m a | action to perform |
-> m a |
Perform the given action and call the exception handler if the action
throws a SourceError
. See SourceError
for more information.