diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2016-02-18 11:34:12 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2016-02-18 11:35:06 +0000 |
commit | 4d031cf91c5eed9b162703daee274bbbe94bdc42 (patch) | |
tree | 1fd98d58b6a5d1d3095486f347af0c8c9a34331f /compiler/iface/BuildTyCl.hs | |
parent | b5292557dcf2e3844b4837172230575d40a8917e (diff) | |
download | haskell-4d031cf91c5eed9b162703daee274bbbe94bdc42.tar.gz |
Improve piResultTys and friends
Several things here:
* Re-implement piResultTys so that its substitution has
the correct in-scope set
That means paying close attention to performance, since as we
discovered in Trac #11371, it's a heavily used function and
is often used on ordinary function types, with no foralls to
worry about substituting.
* Kill off applyTys, which was just the same as piResultTys.
* Re-engineer MkCore.mkCoreApps so that it calls piResultTys,
rather than repeatedly calling piResultTy.
Diffstat (limited to 'compiler/iface/BuildTyCl.hs')
-rw-r--r-- | compiler/iface/BuildTyCl.hs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/iface/BuildTyCl.hs b/compiler/iface/BuildTyCl.hs index bde9019ce1..0022e29f11 100644 --- a/compiler/iface/BuildTyCl.hs +++ b/compiler/iface/BuildTyCl.hs @@ -74,7 +74,7 @@ mkNewTyConRhs tycon_name tycon con where tvs = tyConTyVars tycon roles = tyConRoles tycon - inst_con_ty = applyTys (dataConUserType con) (mkTyVarTys tvs) + inst_con_ty = piResultTys (dataConUserType con) (mkTyVarTys tvs) rhs_ty = ASSERT( isFunTy inst_con_ty ) funArgTy inst_con_ty -- Instantiate the data con with the -- type variables from the tycon |