diff options
Diffstat (limited to 'compiler/coreSyn')
-rw-r--r-- | compiler/coreSyn/CoreFVs.hs | 4 | ||||
-rw-r--r-- | compiler/coreSyn/CoreSyn.hs | 2 | ||||
-rw-r--r-- | compiler/coreSyn/CoreUtils.hs | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/compiler/coreSyn/CoreFVs.hs b/compiler/coreSyn/CoreFVs.hs index 12544b89d2..5f1fad2f2e 100644 --- a/compiler/coreSyn/CoreFVs.hs +++ b/compiler/coreSyn/CoreFVs.hs @@ -74,7 +74,7 @@ import Type import TyCoRep import TyCon import CompressArgs -import DataCon ( dataConRepType, dataConWorkId ) +import DataCon ( dataConRepType, dataConCompressScheme, dataConWorkId ) import CoAxiom import FamInstEnv import TysPrim( funTyConName ) @@ -752,7 +752,7 @@ freeVars = go , AnnConApp dc cargs' ) where cargs' = map go cargs - args = uncompressArgs exprTypeFV (go . Type) dc_ty cargs' + args = uncompressArgs exprTypeFV (go . Type) (dataConCompressScheme dc) cargs' dc_ty = dataConRepType dc res_ty = foldl applyTypeToArg dc_ty (map deAnnotate args) -- Why does this not work? Isn't piResultTys just iterated application diff --git a/compiler/coreSyn/CoreSyn.hs b/compiler/coreSyn/CoreSyn.hs index 54a62ef984..b47b21c5a4 100644 --- a/compiler/coreSyn/CoreSyn.hs +++ b/compiler/coreSyn/CoreSyn.hs @@ -1501,7 +1501,7 @@ mkCoApps f args = foldl (\ e a -> App e (Coercion a)) f args mkVarApps f vars = foldl (\ e a -> App e (varToCoreExpr a)) f vars mkConApp dc args = ASSERT2 ( dataConRepFullArity dc == length args, text "mkConApp: artiy mismatch" $$ ppr dc ) - ConApp dc (compressArgs (dataConRepType dc) args) + ConApp dc (compressArgs (dataConCompressScheme dc) args) mkTyApps f args = foldl (\ e a -> App e (typeOrCoercion a)) f args where diff --git a/compiler/coreSyn/CoreUtils.hs b/compiler/coreSyn/CoreUtils.hs index e71055b26d..89499e3aad 100644 --- a/compiler/coreSyn/CoreUtils.hs +++ b/compiler/coreSyn/CoreUtils.hs @@ -212,7 +212,7 @@ applyTypeToArgs e op_ty args -} collectConArgs :: CoreExpr -> [CoreArg] -collectConArgs (ConApp dc cargs) = uncompressArgs exprTypeOrKind Type (dataConRepType dc) cargs +collectConArgs (ConApp dc cargs) = uncompressArgs exprTypeOrKind Type (dataConCompressScheme dc) cargs collectConArgs _ = panic "conAppArgs" |