diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2012-01-12 17:18:30 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2012-01-12 17:18:30 +0000 |
commit | 3b75c4e6dbb46a0d29a9a70d9c749ed8678dadfc (patch) | |
tree | 17daf04705cee68a0af2b7859478c688e1b63b8c /compiler/simplCore/SetLevels.lhs | |
parent | 3beb1a831b37f616b5e8092def2e51cd9825735f (diff) | |
download | haskell-3b75c4e6dbb46a0d29a9a70d9c749ed8678dadfc.tar.gz |
Comments only
Diffstat (limited to 'compiler/simplCore/SetLevels.lhs')
-rw-r--r-- | compiler/simplCore/SetLevels.lhs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/simplCore/SetLevels.lhs b/compiler/simplCore/SetLevels.lhs index a80dea4603..beb64cb061 100644 --- a/compiler/simplCore/SetLevels.lhs +++ b/compiler/simplCore/SetLevels.lhs @@ -423,7 +423,7 @@ Things to note * We only do this with a single-alternative case Note [Check the output scrutinee for okForSpec] -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Consider this: case x of y { A -> ....(case y of alts).... @@ -432,7 +432,7 @@ Because of the binder-swap, the inner case will get substituted to (case x of ..). So when testing whether the scrutinee is okForSpecuation we must be careful to test the *result* scrutinee ('x' in this case), not the *input* one 'y'. The latter *is* ok for -speculation here, but the former is not -- and ideed we can't float +speculation here, but the former is not -- and indeed we can't float the inner case out, at least not unless x is also evaluated at its binding site. |