Skip to content
  • Herbert Valerio Riedel's avatar
    Implement basic uniform warning set tower · 86897e1f
    Herbert Valerio Riedel authored and Ben Gamari's avatar Ben Gamari committed
    This implements/completes the current basic warning sets to provide the
    following tower of warning sets (i.e. each line subsumes the warnings
    from the sets listed below):
    
    - `-Weverything`
    - `-Wall`
    - `-Wextra` (alias of `-W`)
    - `-Wdefault`
    
    So for each of flags there's also a complement `-Wno-...` flag, which
    subtracts the given set from the current enabled-warnings state.
    
    Thus, we can now easily perform simple set subtraction operations, as
    warning flags are evaluated from left-to-right on the command line.
    
    So e.g.
    
    - `-Weverything -Wno-all -Wno-compat` enables *all* warnings not enabled
      by `-Wall` and `-Wcompat`.
    
    - `-Wextra -Wno-default` only warnings that `-Wextra` provides
      beyond the default warnings.
    
    Reviewers: quchen, austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1850
    86897e1f