Skip to content
  • Sebastian Graf's avatar
    Make warnings for TH splices opt-in · a6ae0122
    Sebastian Graf authored and Ben Gamari's avatar Ben Gamari committed
    In #17270 we have the pattern-match checker emit incorrect warnings. The
    reason for that behavior is ultimately an inconsistency in whether we
    treat TH splices as written by the user (`FromSource :: Origin`) or as
    generated code (`Generated`). This was first reported in #14838.
    
    The current solution is to TH splices as `Generated` by default and only
    treat them as `FromSource` when the user requests so
    (-fenable-th-splice-warnings). There are multiple reasons for opt-in
    rather than opt-out:
    
      * It's not clear that the user that compiles a splice is the author of the code
        that produces the warning. Think of the situation where she just splices in
        code from a third-party library that produces incomplete pattern matches.
        In this scenario, the user isn't even able to fix that warning.
      * Gathering information for producing the warnings (pattern-match check
        warnings in particular) is costly. There's no point in doing so if the user
        is not interested in those warnings.
    
    Fixes #17270, but not #14838, because the proper solution needs a GHC
    proposal extending the TH AST syntax.
    
    (cherry picked from commit c2ffcd47)
    a6ae0122