[commit: ghc] wip/erikd/heapview: Fix deprecation warnings from containers (39c5fdc)

git at git.haskell.org git at git.haskell.org
Sun Jan 29 09:53:30 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/erikd/heapview
Link       : http://ghc.haskell.org/trac/ghc/changeset/39c5fdc14218dae9e649e0d5616b8937c7b10630/ghc

>---------------------------------------------------------------

commit 39c5fdc14218dae9e649e0d5616b8937c7b10630
Author: Erik de Castro Lopo <erikd at mega-nerd.com>
Date:   Sat Jan 28 16:37:53 2017 +1100

    Fix deprecation warnings from containers
    
    Summary:
    The functions that causing warnings were deprecated in containers
    0.5 and GHC is already using containers 0.5.9.1.
    
    Test Plan: validate
    
    Reviewers: rwbarton, bgamari, hsyl20, austin
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D3036


>---------------------------------------------------------------

39c5fdc14218dae9e649e0d5616b8937c7b10630
 compiler/coreSyn/TrieMap.hs    |  8 ++++----
 compiler/simplCore/FloatOut.hs |  4 ++--
 compiler/utils/FiniteMap.hs    |  2 +-
 compiler/utils/UniqDFM.hs      |  4 ++--
 compiler/utils/UniqFM.hs       | 10 +++++-----
 5 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/compiler/coreSyn/TrieMap.hs b/compiler/coreSyn/TrieMap.hs
index f8546d1..4a6e245 100644
--- a/compiler/coreSyn/TrieMap.hs
+++ b/compiler/coreSyn/TrieMap.hs
@@ -119,7 +119,7 @@ instance TrieMap IntMap.IntMap where
   emptyTM = IntMap.empty
   lookupTM k m = IntMap.lookup k m
   alterTM = xtInt
-  foldTM k m z = IntMap.fold k z m
+  foldTM k m z = IntMap.foldr k z m
   mapTM f m = IntMap.map f m
 
 xtInt :: Int -> XT a -> IntMap.IntMap a -> IntMap.IntMap a
@@ -130,7 +130,7 @@ instance Ord k => TrieMap (Map.Map k) where
   emptyTM = Map.empty
   lookupTM = Map.lookup
   alterTM k f m = Map.alter f k m
-  foldTM k m z = Map.fold k z m
+  foldTM k m z = Map.foldr k z m
   mapTM f m = Map.map f m
 
 
@@ -939,8 +939,8 @@ xtTyLit l f m =
     StrTyLit n -> m { tlm_string = tlm_string m |> Map.alter f n }
 
 foldTyLit :: (a -> b -> b) -> TyLitMap a -> b -> b
-foldTyLit l m = flip (Map.fold l) (tlm_string m)
-              . flip (Map.fold l) (tlm_number m)
+foldTyLit l m = flip (Map.foldr l) (tlm_string m)
+              . flip (Map.foldr l) (tlm_number m)
 
 -------------------------------------------------
 -- | @TypeMap a@ is a map from 'Type' to @a at .  If you are a client, this
diff --git a/compiler/simplCore/FloatOut.hs b/compiler/simplCore/FloatOut.hs
index 3c220fe..475108c 100644
--- a/compiler/simplCore/FloatOut.hs
+++ b/compiler/simplCore/FloatOut.hs
@@ -497,10 +497,10 @@ addTopFloatPairs float_bag prs
     add (Rec prs1)   prs2 = prs1 ++ prs2
 
 flattenMajor :: MajorEnv -> Bag FloatBind
-flattenMajor = M.fold (unionBags . flattenMinor) emptyBag
+flattenMajor = M.foldr (unionBags . flattenMinor) emptyBag
 
 flattenMinor :: MinorEnv -> Bag FloatBind
-flattenMinor = M.fold unionBags emptyBag
+flattenMinor = M.foldr unionBags emptyBag
 
 emptyFloats :: FloatBinds
 emptyFloats = FB emptyBag M.empty
diff --git a/compiler/utils/FiniteMap.hs b/compiler/utils/FiniteMap.hs
index dccfca1..cb6e557 100644
--- a/compiler/utils/FiniteMap.hs
+++ b/compiler/utils/FiniteMap.hs
@@ -24,6 +24,6 @@ deleteList :: Ord key => [key] -> Map key elt -> Map key elt
 deleteList ks m = foldl (flip Map.delete) m ks
 
 foldRight        :: (elt -> a -> a) -> a -> Map key elt -> a
-foldRight        = Map.fold
+foldRight        = Map.foldr
 foldRightWithKey :: (key -> elt -> a -> a) -> a -> Map key elt -> a
 foldRightWithKey = Map.foldrWithKey
diff --git a/compiler/utils/UniqDFM.hs b/compiler/utils/UniqDFM.hs
index bbf6bb0..10e8aa9 100644
--- a/compiler/utils/UniqDFM.hs
+++ b/compiler/utils/UniqDFM.hs
@@ -360,10 +360,10 @@ mapUDFM :: (elt1 -> elt2) -> UniqDFM elt1 -> UniqDFM elt2
 mapUDFM f (UDFM m i) = UDFM (M.map (fmap f) m) i
 
 anyUDFM :: (elt -> Bool) -> UniqDFM elt -> Bool
-anyUDFM p (UDFM m _i) = M.fold ((||) . p . taggedFst) False m
+anyUDFM p (UDFM m _i) = M.foldr ((||) . p . taggedFst) False m
 
 allUDFM :: (elt -> Bool) -> UniqDFM elt -> Bool
-allUDFM p (UDFM m _i) = M.fold ((&&) . p . taggedFst) True m
+allUDFM p (UDFM m _i) = M.foldr ((&&) . p . taggedFst) True m
 
 instance Monoid (UniqDFM a) where
   mempty = emptyUDFM
diff --git a/compiler/utils/UniqFM.hs b/compiler/utils/UniqFM.hs
index be5da83..38d9434 100644
--- a/compiler/utils/UniqFM.hs
+++ b/compiler/utils/UniqFM.hs
@@ -237,7 +237,7 @@ disjointUFM :: UniqFM elt1 -> UniqFM elt2 -> Bool
 disjointUFM (UFM x) (UFM y) = M.null (M.intersection x y)
 
 foldUFM :: (elt -> a -> a) -> a -> UniqFM elt -> a
-foldUFM k z (UFM m) = M.fold k z m
+foldUFM k z (UFM m) = M.foldr k z m
 
 mapUFM :: (elt1 -> elt2) -> UniqFM elt1 -> UniqFM elt2
 mapUFM f (UFM m) = UFM (M.map f m)
@@ -285,10 +285,10 @@ ufmToSet_Directly :: UniqFM elt -> S.IntSet
 ufmToSet_Directly (UFM m) = M.keysSet m
 
 anyUFM :: (elt -> Bool) -> UniqFM elt -> Bool
-anyUFM p (UFM m) = M.fold ((||) . p) False m
+anyUFM p (UFM m) = M.foldr ((||) . p) False m
 
 allUFM :: (elt -> Bool) -> UniqFM elt -> Bool
-allUFM p (UFM m) = M.fold ((&&) . p) True m
+allUFM p (UFM m) = M.foldr ((&&) . p) True m
 
 seqEltsUFM :: ([elt] -> ()) -> UniqFM elt -> ()
 seqEltsUFM seqList = seqList . nonDetEltsUFM
@@ -312,13 +312,13 @@ nonDetKeysUFM (UFM m) = map getUnique $ M.keys m
 -- If you use this please provide a justification why it doesn't introduce
 -- nondeterminism.
 nonDetFoldUFM :: (elt -> a -> a) -> a -> UniqFM elt -> a
-nonDetFoldUFM k z (UFM m) = M.fold k z m
+nonDetFoldUFM k z (UFM m) = M.foldr k z m
 
 -- See Note [Deterministic UniqFM] to learn about nondeterminism.
 -- If you use this please provide a justification why it doesn't introduce
 -- nondeterminism.
 nonDetFoldUFM_Directly:: (Unique -> elt -> a -> a) -> a -> UniqFM elt -> a
-nonDetFoldUFM_Directly k z (UFM m) = M.foldWithKey (k . getUnique) z m
+nonDetFoldUFM_Directly k z (UFM m) = M.foldrWithKey (k . getUnique) z m
 
 -- See Note [Deterministic UniqFM] to learn about nondeterminism.
 -- If you use this please provide a justification why it doesn't introduce



More information about the ghc-commits mailing list