import CmdLineOpts ( DynFlags(..), DynFlag(..), dopt,
opt_ErrorSpans )
-import List ( replicate )
+import List ( replicate, sortBy )
import System ( ExitCode(..), exitWith )
import IO ( hPutStr, stderr, stdout )
pprBagOfErrors :: Bag ErrMsg -> Pretty.Doc
pprBagOfErrors bag_of_errors
- = Pretty.vcat [ let style = mkErrStyle unqual in
- Pretty.text "" Pretty.$$ d style Pretty.$$ e style
- | ErrMsg { errMsgShortDoc = d,
+ = Pretty.vcat [ let style = mkErrStyle unqual
+ doc = mkLocMessage s (d $$ e)
+ in
+ Pretty.text "" Pretty.$$ doc style
+ | ErrMsg { errMsgSpans = s:ss,
+ errMsgShortDoc = d,
errMsgExtraInfo = e,
errMsgContext = unqual } <- sorted_errs ]
where
sorted_errs = sortLt occ'ed_before bag_ls
occ'ed_before err1 err2 =
- LT == compare (head (errMsgSpans err1)) (head (errMsgSpans err1))
+ LT == compare (head (errMsgSpans err1)) (head (errMsgSpans err2))
pprBagOfWarnings :: Bag WarnMsg -> Pretty.Doc
pprBagOfWarnings bag_of_warns = pprBagOfErrors bag_of_warns
dumpIfSet_dyn :: DynFlags -> DynFlag -> String -> SDoc -> IO ()
dumpIfSet_dyn dflags flag hdr doc
| dopt flag dflags || verbosity dflags >= 4
- = if flag `elem` [Opt_D_dump_stix, Opt_D_dump_asm]
- then printForC stdout (mkDumpDoc hdr doc)
- else printDump (mkDumpDoc hdr doc)
+ = printDump (mkDumpDoc hdr doc)
| otherwise
= return ()