lookupIfaceTop, lookupIfaceExt,
lookupOrig, lookupIfaceTc,
newIfaceName, newIfaceNames,
- extendIfaceIdEnv, extendIfaceTyVarEnv, refineIfaceIdEnv,
+ extendIfaceIdEnv, extendIfaceTyVarEnv,
tcIfaceLclId, tcIfaceTyVar,
lookupAvail, ifaceExportNames,
import TysWiredIn ( tupleTyCon, tupleCon )
import HscTypes ( NameCache(..), HscEnv(..), GenAvailInfo(..),
IfaceExport, OrigNameCache )
-import Type ( mkOpenTvSubst, substTy )
import TyCon ( TyCon, tyConName )
-import Unify ( TypeRefinement )
import DataCon ( dataConWorkId, dataConName )
-import Var ( TyVar, Id, varName, setIdType, idType )
+import Var ( TyVar, Id, varName )
import Name ( Name, nameUnique, nameModule,
nameOccName, nameSrcLoc,
getOccName, nameParent_maybe,
isWiredInName, mkIPName,
mkExternalName, mkInternalName )
import NameSet ( NameSet, emptyNameSet, addListToNameSet )
-import OccName ( OccName, isTupleOcc_maybe, tcName, dataName, mapOccEnv, occNameFS,
- lookupOccEnv, unitOccEnv, extendOccEnv, extendOccEnvList )
+import OccName ( OccName, isTupleOcc_maybe, tcName, dataName, occNameFS,
+ lookupOccEnv, unitOccEnv, extendOccEnv )
import PrelNames ( gHC_PRIM, dATA_TUP )
import Module ( Module, emptyModuleEnv, ModuleName, modulePackageId,
lookupModuleEnv, extendModuleEnv_C, mkModule )
Nothing -> failIfM (text "Iface id out of scope: " <+> ppr occ)
}
-refineIfaceIdEnv :: TypeRefinement -> IfL a -> IfL a
-refineIfaceIdEnv (tv_subst, _) thing_inside
- = do { env <- getLclEnv
- ; let { id_env' = mapOccEnv refine_id (if_id_env env)
- ; refine_id id = setIdType id (substTy subst (idType id))
- ; subst = mkOpenTvSubst tv_subst }
- ; setLclEnv (env { if_id_env = id_env' }) thing_inside }
-
extendIfaceIdEnv :: [Id] -> IfL a -> IfL a
extendIfaceIdEnv ids thing_inside
= do { env <- getLclEnv