diff options
Diffstat (limited to 'compiler/GHC/Tc')
-rw-r--r-- | compiler/GHC/Tc/Gen/HsType.hs | 3 | ||||
-rw-r--r-- | compiler/GHC/Tc/Utils/Monad.hs | 4 | ||||
-rw-r--r-- | compiler/GHC/Tc/Utils/TcMType.hs | 6 |
3 files changed, 5 insertions, 8 deletions
diff --git a/compiler/GHC/Tc/Gen/HsType.hs b/compiler/GHC/Tc/Gen/HsType.hs index bf15393048..222755f6c9 100644 --- a/compiler/GHC/Tc/Gen/HsType.hs +++ b/compiler/GHC/Tc/Gen/HsType.hs @@ -3692,14 +3692,13 @@ splitTyConKind :: SkolemInfo -- See also Note [Datatype return kinds] in GHC.Tc.TyCl splitTyConKind skol_info in_scope avoid_occs kind = do { loc <- getSrcSpanM - ; uniqs <- newUniqueSupply + ; new_uniqs <- getUniquesM ; rdr_env <- getLocalRdrEnv ; lvl <- getTcLevel ; let new_occs = Inf.filter (\ occ -> isNothing (lookupLocalRdrOcc rdr_env occ) && -- Note [Avoid name clashes for associated data types] not (occ `elem` avoid_occs)) $ mkOccName tvName <$> allNameStrings - new_uniqs = uniqsFromSupply uniqs subst = mkEmptySubst in_scope details = SkolemTv skol_info (pushTcLevel lvl) False -- As always, allocate skolems one level in diff --git a/compiler/GHC/Tc/Utils/Monad.hs b/compiler/GHC/Tc/Utils/Monad.hs index afc7633ff2..ecd3ab3249 100644 --- a/compiler/GHC/Tc/Utils/Monad.hs +++ b/compiler/GHC/Tc/Utils/Monad.hs @@ -729,9 +729,9 @@ newSysLocalId fs w ty newSysLocalIds :: FastString -> [Scaled TcType] -> TcRnIf gbl lcl [TcId] newSysLocalIds fs tys - = do { us <- newUniqueSupply + = do { us <- getUniquesM ; let mkId' n (Scaled w t) = mkSysLocal fs n w t - ; return (zipWith mkId' (uniqsFromSupply us) tys) } + ; return (zipWith mkId' us tys) } instance MonadUnique (IOEnv (Env gbl lcl)) where getUniqueM = newUnique diff --git a/compiler/GHC/Tc/Utils/TcMType.hs b/compiler/GHC/Tc/Utils/TcMType.hs index 89614378cd..d0afe71560 100644 --- a/compiler/GHC/Tc/Utils/TcMType.hs +++ b/compiler/GHC/Tc/Utils/TcMType.hs @@ -770,13 +770,11 @@ newMetaTyVarName :: FastString -> TcM Name -- the unifier; see GHC.Tc.Utils.Unify.nicer_to_update_tv1, and -- GHC.Tc.Solver.Canonical.canEqTyVarTyVar (nicer_to_update_tv2) newMetaTyVarName str - = do { uniq <- newUnique - ; return (mkSystemName uniq (mkTyVarOccFS str)) } + = newSysName (mkTyVarOccFS str) cloneMetaTyVarName :: Name -> TcM Name cloneMetaTyVarName name - = do { uniq <- newUnique - ; return (mkSystemName uniq (nameOccName name)) } + = newSysName (nameOccName name) -- See Note [Name of an instantiated type variable] {- Note [Name of an instantiated type variable] |