GHC.Types.SourceError

ghc-9.2.3: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Types.SourceError

Description

Source errors

Synopsis

- newtype SourceError = SourceError ErrorMessages
- mkSrcErr :: ErrorMessages -> SourceError
- srcErrorMessages :: SourceError -> ErrorMessages
- throwErrors :: MonadIO io => ErrorMessages -> io a
- throwOneError :: MonadIO io => MsgEnvelope DecoratedSDoc -> 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.

Constructors

SourceError ErrorMessages |

#### Instances

Instances details

Exception SourceError Source # |
Instance details Defined in GHC.Types.SourceError Methods toException :: SourceError -> SomeException Source # fromException :: SomeException -> Maybe SourceError Source # displayException :: SourceError -> String Source #
Show SourceError Source # |
Instance details Defined in GHC.Types.SourceError Methods showsPrec :: Int -> SourceError -> ShowS Source # show :: SourceError -> String Source # showList :: [SourceError] -> ShowS Source #

mkSrcErr :: ErrorMessages -> SourceError Source #

srcErrorMessages :: SourceError -> ErrorMessages Source #

throwErrors :: MonadIO io => ErrorMessages -> io a Source #

throwOneError :: MonadIO io => MsgEnvelope DecoratedSDoc -> io a Source #

handleSourceError Source #

Arguments

:: 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.