From: simonmar Date: Thu, 1 Mar 2001 13:44:33 +0000 (+0000) Subject: [project @ 2001-03-01 13:44:33 by simonmar] X-Git-Tag: Approximately_9120_patches~2508 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=6ae3188bfc73775a857ecf600a8c16408cb2cadf;p=ghc-hetmet.git [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. --- 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#