X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FsimplStg%2FSatStgRhs.lhs;fp=ghc%2Fcompiler%2FsimplStg%2FSatStgRhs.lhs;h=c8d2144c83c0b7fee38c8bbf35a5a3b7ff0e25ed;hb=f01a8e8c9c53bfb5ab3393ed3457ebf25390efa1;hp=5290a5434853303385ee5961d83af7dc675749e3;hpb=cc051dd76d01b61caae6f4e1fc177c9815716961;p=ghc-hetmet.git diff --git a/ghc/compiler/simplStg/SatStgRhs.lhs b/ghc/compiler/simplStg/SatStgRhs.lhs index 5290a54..c8d2144 100644 --- a/ghc/compiler/simplStg/SatStgRhs.lhs +++ b/ghc/compiler/simplStg/SatStgRhs.lhs @@ -71,7 +71,7 @@ import Id ( idType, getIdArity, addIdArity, mkSysLocal, ) import IdInfo ( arityMaybe ) import SrcLoc ( mkUnknownSrcLoc ) -import Type ( splitSigmaTy, splitFunTy ) +import Type ( splitSigmaTy, splitForAllTy, splitFunTyWithDictsAsArgs ) import UniqSupply ( returnUs, thenUs, mapUs, getUnique, UniqSM(..) ) import Util ( panic, assertPanic ) @@ -166,9 +166,8 @@ satRhs top env (b, StgRhsClosure cc bi fv u args body) new_arity = num_args + needed_args -- get type info for this function: - (_,rho_arg_tys,tau_ty) = splitSigmaTy (idType b) - (tau_arg_tys, _) = splitFunTy tau_ty - all_arg_tys = ASSERT(null rho_arg_tys) {-rho_arg_tys ++-} tau_arg_tys + (_, rho_ty) = splitForAllTy (idType b) + (all_arg_tys, _) = splitFunTyWithDictsAsArgs rho_ty -- now, we already have "args"; we drop that many types args_we_dont_have_tys = drop num_args all_arg_tys