-- 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)