Severity(..),
ErrMsg, WarnMsg, throwErrMsg, handleErrMsg,
+ ErrorMessages, WarningMessages,
errMsgSpans, errMsgContext, errMsgShortDoc, errMsgExtraInfo,
Messages, errorsFound, emptyMessages,
mkErrMsg, mkPlainErrMsg, mkLongErrMsg, mkWarnMsg, mkPlainWarnMsg,
printErrorsAndWarnings, printBagOfErrors, printBagOfWarnings,
handleFlagWarnings,
+ warnIsErrorMsg,
ghcExit,
doIfSet, doIfSet_dyn,
-- NB Pretty.Doc not SDoc: we deal with the printing style (in ptic
-- whether to qualify an External Name) at the error occurrence
-#if __GLASGOW_HASKELL__ >= 609
instance Exception ErrMsg
-#endif
instance Show ErrMsg where
show em = showSDoc (errMsgShortDoc em)
throwErrMsg :: ErrMsg -> a
-#if __GLASGOW_HASKELL__ < 609
-throwErrMsg = throwDyn
-#else
throwErrMsg = throw
-#endif
-handleErrMsg :: (ErrMsg -> IO a) -> IO a -> IO a
-#if __GLASGOW_HASKELL__ < 609
-handleErrMsg = flip catchDyn
-#else
-handleErrMsg = handle
-#endif
+handleErrMsg :: ExceptionMonad m => (ErrMsg -> m a) -> m a -> m a
+handleErrMsg = ghandle
-- So we can throw these things as exceptions
errMsgTc :: TyCon
type Messages = (Bag WarnMsg, Bag ErrMsg)
+type WarningMessages = Bag WarnMsg
+type ErrorMessages = Bag ErrMsg
+
emptyMessages :: Messages
emptyMessages = (emptyBag, emptyBag)
+warnIsErrorMsg :: ErrMsg
+warnIsErrorMsg = mkPlainErrMsg noSrcSpan (text "\nFailing due to -Werror.\n")
+
errorsFound :: DynFlags -> Messages -> Bool
-- The dyn-flags are used to see if the user has specified
-- -Werror, which says that warnings should be fatal