Make INLINE warning more precise
authorsimonpj@microsoft.com <unknown>
Thu, 19 Nov 2009 13:27:11 +0000 (13:27 +0000)
committersimonpj@microsoft.com <unknown>
Thu, 19 Nov 2009 13:27:11 +0000 (13:27 +0000)
compiler/coreSyn/CoreLint.lhs

index 70bf08b..d6cdad8 100644 (file)
@@ -189,8 +189,9 @@ lintSingleBinding top_lvl_flag rec_flag (binder,rhs)
         -- Check whether binder's specialisations contain any out-of-scope variables
        ; mapM_ (checkBndrIdInScope binder) bndr_vars 
 
-       ; when (isLoopBreaker (idOccInfo binder) && isInlinePragma (idInlinePragma binder))
-              (addWarnL (ptext (sLit "INLINE binder is loop breaker:") <+> ppr binder))
+       ; when (isNonRuleLoopBreaker (idOccInfo binder) && isInlinePragma (idInlinePragma binder))
+              (addWarnL (ptext (sLit "INLINE binder is (non-rule) loop breaker:") <+> ppr binder))
+             -- Only non-rule loop breakers inhibit inlining
 
       -- Check whether arity and demand type are consistent (only if demand analysis
       -- already happened)