From 6c51a993efa623be3f92ae997c3cb321e4b0badb Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Wed, 16 Jan 2008 15:18:18 +0000 Subject: [PATCH] Fix broken debug warning --- compiler/specialise/Rules.lhs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/compiler/specialise/Rules.lhs b/compiler/specialise/Rules.lhs index bbb678d..090f0f0 100644 --- a/compiler/specialise/Rules.lhs +++ b/compiler/specialise/Rules.lhs @@ -35,8 +35,7 @@ import Type ( Type, TvSubstEnv ) import Coercion ( coercionKind ) import TcType ( tcSplitTyConApp_maybe ) import CoreTidy ( tidyRules ) -import Id ( Id, idUnfolding, isLocalId, isGlobalId, idName, idType, - idSpecialisation, idCoreRules, setIdSpecialisation ) +import Id import IdInfo ( SpecInfo( SpecInfo ) ) import Var ( Var ) import VarEnv @@ -233,9 +232,11 @@ getRules :: RuleBase -> Id -> [CoreRule] -- (b) rules added in subsequent modules (extra_rules) -- PrimOps, for example, are born with a bunch of rules under (a) getRules rule_base fn - | isLocalId fn = idCoreRules fn - | otherwise = WARN( null (idCoreRules fn), ppr fn <+> ppr (idCoreRules fn) ) - lookupNameEnv rule_base (idName fn) `orElse` [] + | isLocalId fn = idCoreRules fn + | otherwise = WARN( not (isPrimOpId fn) && notNull (idCoreRules fn), + ppr fn <+> ppr (idCoreRules fn) ) + idCoreRules fn ++ (lookupNameEnv rule_base (idName fn) `orElse` []) + -- Only PrimOpIds have rules inside themselves, and perhaps more besides matchRules :: (Activation -> Bool) -> InScopeSet -> Id -> [CoreExpr] -- 1.7.10.4