diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2017-02-17 12:17:08 +0000 |
---|---|---|
committer | David Feuer <David.Feuer@gmail.com> | 2017-02-20 19:26:24 -0500 |
commit | 49c9c5ad9b03390d4d8d843bb0cf5796f3d19143 (patch) | |
tree | 53f092204c0198d05034c1ccc69409a958511243 | |
parent | a23401493e8763c8f052a9e57b5c5de353173fac (diff) | |
download | haskell-49c9c5ad9b03390d4d8d843bb0cf5796f3d19143.tar.gz |
Add VarSet.anyDVarSet, allDVarSet
I need these in a later commit.
Also rename
varSetAny --> anyVarSet
varSetAll --> allVarSet
for consistency with other functions; eg filterVarSet
-rw-r--r-- | compiler/basicTypes/VarSet.hs | 18 | ||||
-rw-r--r-- | compiler/specialise/Rules.hs | 2 | ||||
-rw-r--r-- | compiler/typecheck/TcType.hs | 2 | ||||
-rw-r--r-- | compiler/types/Unify.hs | 4 |
4 files changed, 16 insertions, 10 deletions
diff --git a/compiler/basicTypes/VarSet.hs b/compiler/basicTypes/VarSet.hs index a6e508ad0b..a95e369a8a 100644 --- a/compiler/basicTypes/VarSet.hs +++ b/compiler/basicTypes/VarSet.hs @@ -17,7 +17,7 @@ module VarSet ( intersectVarSet, intersectsVarSet, disjointVarSet, isEmptyVarSet, delVarSet, delVarSetList, delVarSetByKey, minusVarSet, filterVarSet, - varSetAny, varSetAll, + anyVarSet, allVarSet, transCloVarSet, fixVarSet, lookupVarSet, lookupVarSetByName, sizeVarSet, seqVarSet, @@ -35,7 +35,7 @@ module VarSet ( intersectDVarSet, intersectsDVarSet, disjointDVarSet, isEmptyDVarSet, delDVarSet, delDVarSetList, minusDVarSet, foldDVarSet, filterDVarSet, - dVarSetMinusVarSet, + dVarSetMinusVarSet, anyDVarSet, allDVarSet, transCloDVarSet, sizeDVarSet, seqDVarSet, partitionDVarSet, @@ -139,11 +139,11 @@ intersectsVarSet s1 s2 = not (s1 `disjointVarSet` s2) disjointVarSet s1 s2 = disjointUFM s1 s2 subVarSet s1 s2 = isEmptyVarSet (s1 `minusVarSet` s2) -varSetAny :: (Var -> Bool) -> VarSet -> Bool -varSetAny = uniqSetAny +anyVarSet :: (Var -> Bool) -> VarSet -> Bool +anyVarSet = uniqSetAny -varSetAll :: (Var -> Bool) -> VarSet -> Bool -varSetAll = uniqSetAll +allVarSet :: (Var -> Bool) -> VarSet -> Bool +allVarSet = uniqSetAll -- There used to exist mapVarSet, see Note [Unsound mapUniqSet] in UniqSet for -- why it got removed. @@ -282,6 +282,12 @@ dVarSetMinusVarSet = uniqDSetMinusUniqSet foldDVarSet :: (Var -> a -> a) -> a -> DVarSet -> a foldDVarSet = foldUniqDSet +anyDVarSet :: (Var -> Bool) -> DVarSet -> Bool +anyDVarSet p = foldDVarSet ((||) . p) False + +allDVarSet :: (Var -> Bool) -> DVarSet -> Bool +allDVarSet p = foldDVarSet ((&&) . p) True + filterDVarSet :: (Var -> Bool) -> DVarSet -> DVarSet filterDVarSet = filterUniqDSet diff --git a/compiler/specialise/Rules.hs b/compiler/specialise/Rules.hs index 2ad4e1cd4e..47193c66bc 100644 --- a/compiler/specialise/Rules.hs +++ b/compiler/specialise/Rules.hs @@ -864,7 +864,7 @@ match_alts _ _ _ _ ------------------------------------------ okToFloat :: RnEnv2 -> VarSet -> Bool okToFloat rn_env bind_fvs - = varSetAll not_captured bind_fvs + = allVarSet not_captured bind_fvs where not_captured fv = not (inRnEnvR rn_env fv) diff --git a/compiler/typecheck/TcType.hs b/compiler/typecheck/TcType.hs index 7e5c0b054b..69d1f7c60c 100644 --- a/compiler/typecheck/TcType.hs +++ b/compiler/typecheck/TcType.hs @@ -911,7 +911,7 @@ anyRewritableTyVar ignore_cos pred ty go_co bound co | ignore_cos = False - | otherwise = varSetAny (go_tv bound) (tyCoVarsOfCo co) + | otherwise = anyVarSet (go_tv bound) (tyCoVarsOfCo co) -- We don't have an equivalent of anyRewritableTyVar for coercions -- (at least not yet) so take the free vars and test them diff --git a/compiler/types/Unify.hs b/compiler/types/Unify.hs index 7c6409f7af..05d6c6d091 100644 --- a/compiler/types/Unify.hs +++ b/compiler/types/Unify.hs @@ -522,7 +522,7 @@ niFixTCvSubst tenv = f tenv | not_fixpoint = f (mapVarEnv (substTy subst') tenv) | otherwise = subst where - not_fixpoint = varSetAny in_domain range_tvs + not_fixpoint = anyVarSet in_domain range_tvs in_domain tv = tv `elemVarEnv` tenv range_tvs = nonDetFoldUFM (unionVarSet . tyCoVarsOfType) emptyVarSet tenv @@ -1223,7 +1223,7 @@ ty_co_match menv subst ty co lkco rkco = noneSet (\v -> elemVarEnv v env) set noneSet :: (Var -> Bool) -> VarSet -> Bool - noneSet f = varSetAll (not . f) + noneSet f = allVarSet (not . f) ty_co_match menv subst ty co lkco rkco | CastTy ty' co' <- ty |