diff options
author | simonpj@microsoft.com <unknown> | 2008-09-14 11:33:24 +0000 |
---|---|---|
committer | simonpj@microsoft.com <unknown> | 2008-09-14 11:33:24 +0000 |
commit | 442e45db830166b3a9ef70320eaf45c5b845abda (patch) | |
tree | 85179a4e35c0e6e30e3ed2297ddf974b8e309ae1 /compiler/simplCore | |
parent | d3bbee1c1a128daf17875a56bc4a335349a31124 (diff) | |
download | haskell-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.lhs | 4 |
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) |