summaryrefslogtreecommitdiff
path: root/compiler/coreSyn/CoreTidy.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/coreSyn/CoreTidy.hs')
-rw-r--r--compiler/coreSyn/CoreTidy.hs15
1 files changed, 7 insertions, 8 deletions
diff --git a/compiler/coreSyn/CoreTidy.hs b/compiler/coreSyn/CoreTidy.hs
index 89ce692422..be5e6c1619 100644
--- a/compiler/coreSyn/CoreTidy.hs
+++ b/compiler/coreSyn/CoreTidy.hs
@@ -14,13 +14,15 @@ module CoreTidy (
#include "HsVersions.h"
+import GhcPrelude
+
import CoreSyn
import CoreSeq ( seqUnfolding )
import CoreArity
import Id
import IdInfo
import Demand ( zapUsageEnvSig )
-import Type( tidyType, tidyTyCoVarBndr )
+import Type( tidyType, tidyVarBndr )
import Coercion( tidyCo )
import Var
import VarEnv
@@ -128,7 +130,7 @@ tidyVarOcc (_, var_env) v = lookupVarEnv var_env v `orElse` v
-- tidyBndr is used for lambda and case binders
tidyBndr :: TidyEnv -> Var -> (TidyEnv, Var)
tidyBndr env var
- | isTyCoVar var = tidyTyCoVarBndr env var
+ | isTyCoVar var = tidyVarBndr env var
| otherwise = tidyIdBndr env var
tidyBndrs :: TidyEnv -> [Var] -> (TidyEnv, [Var])
@@ -157,9 +159,7 @@ tidyIdBndr env@(tidy_env, var_env) id
`setOneShotInfo` oneShotInfo old_info
old_info = idInfo id
old_unf = unfoldingInfo old_info
- new_unf | isEvaldUnfolding old_unf = evaldUnfolding
- | otherwise = noUnfolding
- -- See Note [Preserve evaluatedness]
+ new_unf = zapUnfolding old_unf -- See Note [Preserve evaluatedness]
in
((tidy_env', var_env'), id')
}
@@ -205,11 +205,10 @@ tidyLetBndr rec_tidy_env env@(tidy_env, var_env) (id,rhs)
`setInlinePragInfo` inlinePragInfo old_info
`setUnfoldingInfo` new_unf
+ old_unf = unfoldingInfo old_info
new_unf | isStableUnfolding old_unf = tidyUnfolding rec_tidy_env old_unf old_unf
- | isEvaldUnfolding old_unf = evaldUnfolding
+ | otherwise = zapUnfolding old_unf
-- See Note [Preserve evaluatedness]
- | otherwise = noUnfolding
- old_unf = unfoldingInfo old_info
in
((tidy_env', var_env'), id') }