summaryrefslogtreecommitdiff
path: root/compiler/simplCore
diff options
context:
space:
mode:
authorsimonpj@microsoft.com <unknown>2008-09-14 11:33:24 +0000
committersimonpj@microsoft.com <unknown>2008-09-14 11:33:24 +0000
commit442e45db830166b3a9ef70320eaf45c5b845abda (patch)
tree85179a4e35c0e6e30e3ed2297ddf974b8e309ae1 /compiler/simplCore
parentd3bbee1c1a128daf17875a56bc4a335349a31124 (diff)
downloadhaskell-442e45db830166b3a9ef70320eaf45c5b845abda.tar.gz
Don't try to float type-lets
A type let shouldn't really occur in SetLevels, but if it does, this patch makes sure it is left alone.
Diffstat (limited to 'compiler/simplCore')
-rw-r--r--compiler/simplCore/SetLevels.lhs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/simplCore/SetLevels.lhs b/compiler/simplCore/SetLevels.lhs
index f5a5a268f1..4411d74ffd 100644
--- a/compiler/simplCore/SetLevels.lhs
+++ b/compiler/simplCore/SetLevels.lhs
@@ -481,7 +481,9 @@ lvlBind :: TopLevelFlag -- Used solely to decide whether to clone
-> LvlM (LevelledBind, LevelEnv)
lvlBind top_lvl ctxt_lvl env (AnnNonRec bndr rhs@(rhs_fvs,_))
- | isInlineCtxt ctxt_lvl -- Don't do anything inside InlineMe
+ | isTyVar bndr -- Don't do anything for TyVar binders
+ -- (simplifier gets rid of them pronto)
+ || isInlineCtxt ctxt_lvl -- Don't do anything inside InlineMe
= do rhs' <- lvlExpr ctxt_lvl env rhs
return (NonRec (TB bndr ctxt_lvl) rhs', env)