X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Ftypes%2FGenerics.lhs;h=44fd27a757cae15239060b750da765a8e6c70a2c;hb=10cbc75d37064b3ef76ca3ccd219d66e445ecb0f;hp=40b223e8183d136b89eaa3bfd0ab1cadb8779a91;hpb=4161ba13916463f8e67259498eacf22744160e1f;p=ghc-hetmet.git diff --git a/ghc/compiler/types/Generics.lhs b/ghc/compiler/types/Generics.lhs index 40b223e..44fd27a 100644 --- a/ghc/compiler/types/Generics.lhs +++ b/ghc/compiler/types/Generics.lhs @@ -24,14 +24,14 @@ import CoreSyn ( mkLams, Expr(..), CoreExpr, AltCon(..), Note(..), import BasicTypes ( EP(..), Boxity(..) ) import Var ( TyVar ) import VarSet ( varSetElems ) -import Id ( Id, mkTemplateLocal, idType, idName, - mkTemplateLocalsNum, mkId +import Id ( Id, mkVanillaGlobal, idType, idName, + mkTemplateLocal, mkTemplateLocalsNum ) import TysWiredIn ( genericTyCons, genUnitTyCon, genUnitDataCon, plusTyCon, inrDataCon, inlDataCon, crossTyCon, crossDataCon ) -import IdInfo ( constantIdInfo, setUnfoldingInfo ) +import IdInfo ( noCafNoTyGenIdInfo, setUnfoldingInfo ) import CoreUnfold ( mkTopUnfolding ) import Unique ( mkBuiltinUnique ) @@ -225,7 +225,7 @@ validGenericMethodType ty %************************************************************************ \begin{code} -mkTyConGenInfo :: TyCon -> Name -> Name -> Maybe (EP Id) +mkTyConGenInfo :: TyCon -> [Name] -> Maybe (EP Id) -- mkTyConGenInfo is called twice -- once from TysWiredIn for Tuples -- once the typechecker TcTyDecls @@ -236,7 +236,7 @@ mkTyConGenInfo :: TyCon -> Name -> Name -> Maybe (EP Id) -- The two names are the names constructed by the renamer -- for the fromT and toT conversion functions. -mkTyConGenInfo tycon from_name to_name +mkTyConGenInfo tycon [from_name, to_name] | null datacons -- Abstractly imported types don't have = Nothing -- to/from operations, (and should not need them) @@ -250,16 +250,16 @@ mkTyConGenInfo tycon from_name to_name = Nothing | otherwise - = Just (EP { fromEP = mkId from_name from_ty from_id_info, - toEP = mkId to_name to_ty to_id_info }) + = Just (EP { fromEP = mkVanillaGlobal from_name from_ty from_id_info, + toEP = mkVanillaGlobal to_name to_ty to_id_info }) where tyvars = tyConTyVars tycon -- [a, b, c] datacons = tyConDataConsIfAvailable tycon -- [C, D] tycon_ty = mkTyConApp tycon tyvar_tys -- T a b c tyvar_tys = mkTyVarTys tyvars - from_id_info = constantIdInfo `setUnfoldingInfo` mkTopUnfolding from_fn - to_id_info = constantIdInfo `setUnfoldingInfo` mkTopUnfolding to_fn + from_id_info = noCafNoTyGenIdInfo `setUnfoldingInfo` mkTopUnfolding from_fn + to_id_info = noCafNoTyGenIdInfo `setUnfoldingInfo` mkTopUnfolding to_fn from_ty = mkForAllTys tyvars (mkFunTy tycon_ty rep_ty) to_ty = mkForAllTys tyvars (mkFunTy rep_ty tycon_ty)