From 6ae3188bfc73775a857ecf600a8c16408cb2cadf Mon Sep 17 00:00:00 2001 From: simonmar Date: Thu, 1 Mar 2001 13:44:33 +0000 Subject: [PATCH] [project @ 2001-03-01 13:44:33 by simonmar] fix an ASSERT: the isDeadBinder predicate can't be used here, because all the Ids have been cloned with empty IdInfo. --- ghc/compiler/coreSyn/CoreSat.lhs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ghc/compiler/coreSyn/CoreSat.lhs b/ghc/compiler/coreSyn/CoreSat.lhs index 3e53e9e..f80d356 100644 --- a/ghc/compiler/coreSyn/CoreSat.lhs +++ b/ghc/compiler/coreSyn/CoreSat.lhs @@ -530,9 +530,10 @@ mkCase scrut@(Var fn `App` Type ty `App` arg) bndr alts Case arg new_bndr [deflt_alt] other -> Case scrut bndr alts where - (deflt_alt : _) = [alt | alt@(DEFAULT,_,_) <- alts] + (deflt_alt@(_,_,rhs) : _) = [alt | alt@(DEFAULT,_,_) <- alts] - new_bndr = ASSERT( isDeadBinder bndr ) -- The binder shouldn't be used in the expression! + -- The binder shouldn't be used in the expression! + new_bndr = ASSERT2( not (bndr `elemVarSet` exprFreeVars rhs), ppr bndr ) setIdType bndr (exprType arg) -- NB: SeqOp :: forall a. a -> Int# -- So bndr has type Int# -- 1.7.10.4