Skip to content

Make warnings for TH splices opt-in

Sebastian Graf requested to merge wip/T17270 into master

In #17270 (closed) 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 (closed), but not #14838, because the proper solution needs a GHC proposal extending the TH AST syntax.

Merge request reports