Skip to content
  • elaforge's avatar
    Rearrange error msgs and add section markers (Trac #11014). · c05fddde
    elaforge authored and Ben Gamari's avatar Ben Gamari committed
    This puts the "Relevant bindings" section at the end.
    
    It uses a TcErrors.Report Monoid to divide messages by importance and
    then mappends them together.  This is not the most efficient way since
    there are various intermediate Reports and list appends, but it probably
    doesn't matter since error messages shouldn't get that large, and are
    usually prepended.  In practice, everything is `important` except
    `relevantBindings`, which is `supplementary`.
    
    ErrMsg's errMsgShortDoc and errMsgExtraInfo were extracted into ErrDoc,
    which has important, context, and suppelementary fields.  Each of those
    three sections is marked with a bullet character, '•' on unicode
    terminals and '*' on ascii terminals.  Since this breaks tons of tests,
    I also modified testlib.normalise_errmsg to strip out '•'s.
    
    --- Additional notes:
    
    To avoid prepending * to an empty doc, I needed to filter empty docs.
    This seemed less error-prone than trying to modify everyone who produ...
    c05fddde