Add VarSet.anyDVarSet, allDVarSet
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 1 Mar 2017 01:17:10 +0000 (20:17 -0500)
committerDavid Feuer <David.Feuer@gmail.com>
Wed, 1 Mar 2017 01:17:12 +0000 (20:17 -0500)
I need these in a later commit.

Also rename
  varSetAny  -->  anyVarSet
  varSetAll  -->  allVarSet
for consistency with other functions; eg filterVarSet

Reviewers: austin, goldfire, bgamari

Subscribers: niteria, thomie

Differential Revision: https://phabricator.haskell.org/D3202

compiler/basicTypes/VarSet.hs
compiler/specialise/Rules.hs
compiler/typecheck/TcType.hs
compiler/types/Unify.hs

index a6e508a..f6d82fd 100644 (file)
@@ -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,
@@ -50,7 +50,7 @@ import Name     ( Name )
 import UniqSet
 import UniqDSet
 import UniqFM( disjointUFM, pluralUFM, pprUFM )
-import UniqDFM( disjointUDFM, udfmToUfm )
+import UniqDFM( disjointUDFM, udfmToUfm, anyUDFM, allUDFM )
 import Outputable (SDoc)
 
 -- | A non-deterministic Variable Set
@@ -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 = anyUDFM
+
+allDVarSet :: (Var -> Bool) -> DVarSet -> Bool
+allDVarSet = allUDFM
+
 filterDVarSet :: (Var -> Bool) -> DVarSet -> DVarSet
 filterDVarSet = filterUniqDSet
 
index 2ad4e1c..47193c6 100644 (file)
@@ -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)
 
index 7e5c0b0..69d1f7c 100644 (file)
@@ -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
 
index ed879eb..517358d 100644 (file)
@@ -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