Commit c9733e26 authored by pcapriotti's avatar pcapriotti

Add flag to disable rule shadowing warning.

Also, temporarely disable that warning for validate builds, until we
finish fixing them all.
parent b498b998
......@@ -364,6 +364,7 @@ dsRule (L loc (HsRule name act vars lhs _tv_lhs rhs _fv_rhs))
dsLExpr lhs -- Note [Desugaring RULE left hand sides]
; rhs' <- dsLExpr rhs
; dflags <- getDynFlags
-- Substitute the dict bindings eagerly,
-- and take the body apart into a (f args) form
......@@ -381,6 +382,7 @@ dsRule (L loc (HsRule name act vars lhs _tv_lhs rhs _fv_rhs))
name act fn_name final_bndrs args final_rhs
inline_shadows_rule -- Function can be inlined before rule fires
| wopt Opt_WarnInlineRuleShadowing dflags
= case (idInlineActivation fn_id, act) of
(NeverActive, _) -> False
(AlwaysActive, _) -> True
......@@ -389,7 +391,7 @@ dsRule (L loc (HsRule name act vars lhs _tv_lhs rhs _fv_rhs))
(ActiveAfter n, ActiveAfter r) -> r < n -- Rule active strictly first
(ActiveAfter {}, AlwaysActive) -> False
(ActiveAfter {}, ActiveBefore {}) -> False
| otherwise = False
; when inline_shadows_rule $
warnDs (vcat [ hang (ptext (sLit "Rule") <+> doubleQuotes (ftext name)
......
......@@ -383,6 +383,7 @@ data WarningFlag =
| Opt_WarnSafe
| Opt_WarnPointlessPragmas
| Opt_WarnUnsupportedCallingConventions
| Opt_WarnInlineRuleShadowing
deriving (Eq, Show, Enum)
data Language = Haskell98 | Haskell2010
......@@ -1981,7 +1982,8 @@ fWarningFlags = [
( "warn-unsafe", Opt_WarnUnsafe, setWarnUnsafe ),
( "warn-safe", Opt_WarnSafe, setWarnSafe ),
( "warn-pointless-pragmas", Opt_WarnPointlessPragmas, nop ),
( "warn-unsupported-calling-conventions", Opt_WarnUnsupportedCallingConventions, nop ) ]
( "warn-unsupported-calling-conventions", Opt_WarnUnsupportedCallingConventions, nop ),
( "warn-inline-rule-shadowing", Opt_WarnInlineRuleShadowing, nop ) ]
-- | These @-\<blah\>@ flags can all be reversed with @-no-\<blah\>@
negatableFlags :: [FlagSpec DynFlag]
......
......@@ -123,3 +123,5 @@ libraries/binary/src/Data/Binary/Get_HC_OPTS += -fno-warn-warnings-deprecations
GhcLibHcOpts += -fno-warn-deprecated-flags
GhcBootLibHcOpts += -fno-warn-deprecated-flags
# Temporarely disable rule shadowing warning
GhcLibHcOpts += -fno-warn-inline-rule-shadowing
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment