summaryrefslogtreecommitdiff
path: root/compiler/stranal
diff options
context:
space:
mode:
authorRichard Eisenberg <eir@cis.upenn.edu>2016-04-06 15:24:34 +0200
committerRichard Eisenberg <eir@cis.upenn.edu>2016-04-12 08:14:18 -0400
commit0b6dcf6d2ccac3b43037650279256022a352de53 (patch)
treeaf6deef394242781c6f91e4bee63c7dcdf5cc8ff /compiler/stranal
parentdd99f2ece1bd139be02beddc6dc672862ee5ae34 (diff)
downloadhaskell-0b6dcf6d2ccac3b43037650279256022a352de53.tar.gz
Fix #11814 by throwing more stuff into InScopeSets
Diffstat (limited to 'compiler/stranal')
-rw-r--r--compiler/stranal/WwLib.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/stranal/WwLib.hs b/compiler/stranal/WwLib.hs
index 7c85036c1f..4ec36baa5f 100644
--- a/compiler/stranal/WwLib.hs
+++ b/compiler/stranal/WwLib.hs
@@ -22,6 +22,7 @@ import MkCore ( mkRuntimeErrorApp, aBSENT_ERROR_ID, mkCoreUbxTup )
import MkId ( voidArgId, voidPrimId )
import TysPrim ( voidPrimTy )
import TysWiredIn ( tupleDataCon )
+import VarEnv ( mkInScopeSet )
import Type
import Coercion
import FamInstEnv
@@ -127,7 +128,9 @@ mkWwBodies :: DynFlags
-- E
mkWwBodies dflags fam_envs fun_ty demands res_info
- = do { (wrap_args, wrap_fn_args, work_fn_args, res_ty) <- mkWWargs emptyTCvSubst fun_ty demands
+ = do { let empty_subst = mkEmptyTCvSubst (mkInScopeSet (tyCoVarsOfType fun_ty))
+
+ ; (wrap_args, wrap_fn_args, work_fn_args, res_ty) <- mkWWargs empty_subst fun_ty demands
; (useful1, work_args, wrap_fn_str, work_fn_str) <- mkWWstr dflags fam_envs wrap_args
-- Do CPR w/w. See Note [Always do CPR w/w]