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,
throwErrMsg = throw
#endif
-handleErrMsg :: (ErrMsg -> IO a) -> IO a -> IO a
+handleErrMsg :: ExceptionMonad m => (ErrMsg -> m a) -> m a -> m a
#if __GLASGOW_HASKELL__ < 609
-handleErrMsg = flip catchDyn
+handleErrMsg = flip gcatchDyn
#else
-handleErrMsg = handle
+handleErrMsg = ghandle
#endif
-- So we can throw these things as exceptions
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