[project @ 2002-08-20 10:32:48 by simonmar]
authorsimonmar <unknown>
Tue, 20 Aug 2002 10:32:48 +0000 (10:32 +0000)
committersimonmar <unknown>
Tue, 20 Aug 2002 10:32:48 +0000 (10:32 +0000)
commita4ac14369fc0c456b3add10e63a21a3d45f68dda
tree6d44920604669120b6abd6c1b3af8584e268716b
parent11fcbaeb156ebb1a89cd5e05960c599d8dcf5924
[project @ 2002-08-20 10:32:48 by simonmar]
Fix a buglet in CorePrep:  an expression such as

case __coerce (\x -> e) :: T of { ... }

would be left as is, but the lambda expression should really be
abstracted as a let (causes a panic later in srtExpr; shown up by
the dynamic001 test).  There was a missing call to deLam in the case
for Case expressions in corePrepExprFloat.

In addition, I made a new version of deLam, deLamFloat, which can
float any bindings generated.  This helps to generate slightly cleaner
code in the above case (the binding is floated out of the scrutinee).

Also: GC unused imports while I'm here.
ghc/compiler/coreSyn/CorePrep.lhs