summaryrefslogtreecommitdiff
path: root/compiler/deSugar
diff options
context:
space:
mode:
authorPaolo Capriotti <p.capriotti@gmail.com>2012-07-24 16:59:50 +0100
committerPaolo Capriotti <p.capriotti@gmail.com>2012-07-24 16:59:50 +0100
commitc9733e263906eaf13b3cc585e76f42e8bddbde4c (patch)
tree8c64cb57c464cab10f53e4aea508a5fa440d2344 /compiler/deSugar
parentb498b9983b75b8b7c3a365c1b44e85cbddd09648 (diff)
downloadhaskell-c9733e263906eaf13b3cc585e76f42e8bddbde4c.tar.gz
Add flag to disable rule shadowing warning.
Also, temporarely disable that warning for validate builds, until we finish fixing them all.
Diffstat (limited to 'compiler/deSugar')
-rw-r--r--compiler/deSugar/Desugar.lhs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/deSugar/Desugar.lhs b/compiler/deSugar/Desugar.lhs
index 2b068bbd46..ae9b0ec16f 100644
--- a/compiler/deSugar/Desugar.lhs
+++ b/compiler/deSugar/Desugar.lhs
@@ -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)