Skip to content
  • Alfredo Di Napoli's avatar
    Introduce SevIgnore Severity to suppress warnings · 49528121
    Alfredo Di Napoli authored and Marge Bot's avatar Marge Bot committed
    This commit introduces a new `Severity` type constructor called
    `SevIgnore`, which can be used to classify diagnostic messages which are
    not meant to be displayed to the user, for example suppressed warnings.
    
    This extra constructor allows us to get rid of a bunch of redundant
    checks when emitting diagnostics, typically in the form of the pattern:
    
    ```
    when (optM Opt_XXX) $
      addDiagnosticTc (WarningWithFlag Opt_XXX) ...
    ```
    
    Fair warning! Not all checks should be omitted/skipped, as evaluating some data
    structures used to produce a diagnostic might still be expensive (e.g.
    zonking, etc). Therefore, a case-by-case analysis must be conducted when
    deciding if a check can be removed or not.
    
    Last but not least, we remove the unnecessary `CmdLine.WarnReason` type, which is now
    redundant with `DiagnosticReason`.
    49528121