summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-06-12 15:47:40 +0100
committerIan Lynagh <igloo@earth.li>2012-06-12 15:47:40 +0100
commit1c490467fce17d97c30bc518df498f9b353d10d6 (patch)
tree59f7c0c1b8c201254f91543714d0816652884c56
parentc3a62c563fb62d4d8b94c0dc0c270724b35d4341 (diff)
downloadhaskell-1c490467fce17d97c30bc518df498f9b353d10d6.tar.gz
Store short error message text as a string
We also store the Doc still, although we don't have to; we could just convert back again, at the cost of some inefficiency. But we do need the String, so that we can print it in the Show instance.
-rw-r--r--compiler/main/ErrUtils.lhs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/main/ErrUtils.lhs b/compiler/main/ErrUtils.lhs
index dafc7e61aa..83f57c3888 100644
--- a/compiler/main/ErrUtils.lhs
+++ b/compiler/main/ErrUtils.lhs
@@ -64,7 +64,8 @@ type ErrorMessages = Bag ErrMsg
data ErrMsg = ErrMsg {
errMsgSpans :: [SrcSpan],
errMsgContext :: PrintUnqualified,
- errMsgShortDoc :: MsgDoc,
+ errMsgShortDoc :: MsgDoc, -- errMsgShort* should always
+ errMsgShortString :: String, -- contain the same text
errMsgExtraInfo :: MsgDoc,
errMsgSeverity :: Severity
}
@@ -82,7 +83,7 @@ data Severity
| SevFatal
instance Show ErrMsg where
- show em = showSDoc (errMsgShortDoc em)
+ show em = errMsgShortString em
pprMessageBag :: Bag MsgDoc -> SDoc
pprMessageBag msgs = vcat (punctuate blankLine (bagToList msgs))
@@ -110,7 +111,8 @@ makeIntoWarning err = err { errMsgSeverity = SevWarning }
mk_err_msg :: DynFlags -> Severity -> SrcSpan -> PrintUnqualified -> MsgDoc -> SDoc -> ErrMsg
mk_err_msg _ sev locn print_unqual msg extra
= ErrMsg { errMsgSpans = [locn], errMsgContext = print_unqual
- , errMsgShortDoc = msg, errMsgExtraInfo = extra
+ , errMsgShortDoc = msg , errMsgShortString = showSDoc msg
+ , errMsgExtraInfo = extra
, errMsgSeverity = sev }
mkLongErrMsg, mkLongWarnMsg :: DynFlags -> SrcSpan -> PrintUnqualified -> MsgDoc -> MsgDoc -> ErrMsg