• Sebastian Graf's avatar
    Make warnings for TH splices opt-in · 5a08f7d4
    Sebastian Graf authored
    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.
    5a08f7d4
Name
Last commit
Last update
..
ClsInst.hs Loading commit data...
Constraint.hs Loading commit data...
FamInst.hs Loading commit data...
Flattening-notes Loading commit data...
FunDeps.hs Loading commit data...
Inst.hs Loading commit data...
TcAnnotations.hs Loading commit data...
TcArrows.hs Loading commit data...
TcBackpack.hs Loading commit data...
TcBinds.hs Loading commit data...
TcCanonical.hs Loading commit data...
TcClassDcl.hs Loading commit data...
TcDefaults.hs Loading commit data...
TcDeriv.hs Loading commit data...
TcDerivInfer.hs Loading commit data...
TcDerivUtils.hs Loading commit data...
TcEnv.hs Loading commit data...
TcEnv.hs-boot Loading commit data...
TcErrors.hs Loading commit data...
TcEvTerm.hs Loading commit data...
TcEvidence.hs Loading commit data...
TcExpr.hs Loading commit data...
TcExpr.hs-boot Loading commit data...
TcFlatten.hs Loading commit data...
TcForeign.hs Loading commit data...
TcGenDeriv.hs Loading commit data...
TcGenFunctor.hs Loading commit data...
TcGenGenerics.hs Loading commit data...
TcHoleErrors.hs Loading commit data...
TcHoleErrors.hs-boot Loading commit data...
TcHoleFitTypes.hs Loading commit data...
TcHoleFitTypes.hs-boot Loading commit data...
TcHsSyn.hs Loading commit data...
TcHsType.hs Loading commit data...
TcInstDcls.hs Loading commit data...
TcInstDcls.hs-boot Loading commit data...
TcInteract.hs Loading commit data...
TcMType.hs Loading commit data...
TcMatches.hs Loading commit data...
TcMatches.hs-boot Loading commit data...
TcOrigin.hs Loading commit data...
TcPat.hs Loading commit data...
TcPatSyn.hs Loading commit data...
TcPatSyn.hs-boot Loading commit data...
TcPluginM.hs Loading commit data...
TcRnDriver.hs Loading commit data...
TcRnDriver.hs-boot Loading commit data...
TcRnExports.hs Loading commit data...
TcRnMonad.hs Loading commit data...
TcRnTypes.hs Loading commit data...
TcRnTypes.hs-boot Loading commit data...
TcRules.hs Loading commit data...
TcSMonad.hs Loading commit data...
TcSigs.hs Loading commit data...
TcSimplify.hs Loading commit data...
TcSplice.hs Loading commit data...
TcSplice.hs-boot Loading commit data...
TcTyClsDecls.hs Loading commit data...
TcTyDecls.hs Loading commit data...
TcType.hs Loading commit data...
TcType.hs-boot Loading commit data...
TcTypeNats.hs Loading commit data...
TcTypeable.hs Loading commit data...
TcUnify.hs Loading commit data...
TcUnify.hs-boot Loading commit data...
TcValidity.hs Loading commit data...