[project @ 2001-07-24 16:42:11 by simonpj]
authorsimonpj <unknown>
Tue, 24 Jul 2001 16:42:11 +0000 (16:42 +0000)
committersimonpj <unknown>
Tue, 24 Jul 2001 16:42:11 +0000 (16:42 +0000)
commit7c03fd3bee98604426f7d879f53878d40f08d1a5
tree1b5202e5cbede3070e53efe7fc4538f9a556d11f
parent76a51a41211a151d68a90e8dd732aeea1da17847
[project @ 2001-07-24 16:42:11 by simonpj]
A major demand-analyser fix, which made it say something was
absent when it wasn't at all.  Here's the comment from the
Case equation of dmdAnal.

-- Figure out whether the case binder is used, and use
-- that to set the keepity of the demand.  This is utterly essential.
-- Consider f x = case x of y { (a,b) -> k y a }
-- If we just take scrut_demand = U(L,A), then we won't pass x to the
-- worker, so the worker will rebuild
-- x = (a, absent-error)
-- and that'll crash.
ghc/compiler/basicTypes/NewDemand.lhs
ghc/compiler/stranal/DmdAnal.lhs