about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSteven Fackler <sfackler@gmail.com>2015-03-28 11:24:26 -0700
committerSteven Fackler <sfackler@gmail.com>2015-03-28 11:24:26 -0700
commitb82bcec7ce67a60adcc054670487fe534195f6d6 (patch)
tree1016d78beea61d1821097973e000c367c8fbb7c1
parent4037f2a368edd75c561bc6f3d8c6f0d644bc4180 (diff)
downloadrust-b82bcec7ce67a60adcc054670487fe534195f6d6.tar.gz
rust-b82bcec7ce67a60adcc054670487fe534195f6d6.zip
Fold collections debug impls
Also convert [T]'s Debug impl. The behavior of the alternate flag here's
changing.
-rw-r--r--src/libcollections/btree/map.rs6
-rw-r--r--src/libcollections/btree/set.rs6
-rw-r--r--src/libcollections/linked_list.rs6
-rw-r--r--src/libcore/fmt/mod.rs17
-rw-r--r--src/libstd/collections/hash/map.rs6
-rw-r--r--src/libstd/collections/hash/set.rs6
6 files changed, 6 insertions, 41 deletions
diff --git a/src/libcollections/btree/map.rs b/src/libcollections/btree/map.rs
index 93978e31de5..e1d007f0ac4 100644
--- a/src/libcollections/btree/map.rs
+++ b/src/libcollections/btree/map.rs
@@ -904,11 +904,7 @@ impl<K: Ord, V: Ord> Ord for BTreeMap<K, V> {
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<K: Debug, V: Debug> Debug for BTreeMap<K, V> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        let mut builder = f.debug_map();
-        for (k, v) in self {
-            builder = builder.entry(k, v);
-        }
-        builder.finish()
+        self.iter().fold(f.debug_map(), |b, (k, v)| b.entry(k, v)).finish()
     }
 }
 
diff --git a/src/libcollections/btree/set.rs b/src/libcollections/btree/set.rs
index db0cdd30b1b..840110b5b27 100644
--- a/src/libcollections/btree/set.rs
+++ b/src/libcollections/btree/set.rs
@@ -628,11 +628,7 @@ impl<'a, 'b, T: Ord + Clone> BitOr<&'b BTreeSet<T>> for &'a BTreeSet<T> {
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<T: Debug> Debug for BTreeSet<T> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        let mut builder = f.debug_set();
-        for x in self {
-            builder = builder.entry(x);
-        }
-        builder.finish()
+        self.iter().fold(f.debug_set(), |b, e| b.entry(e)).finish()
     }
 }
 
diff --git a/src/libcollections/linked_list.rs b/src/libcollections/linked_list.rs
index 56c880ca6e2..581bab5759f 100644
--- a/src/libcollections/linked_list.rs
+++ b/src/libcollections/linked_list.rs
@@ -927,11 +927,7 @@ impl<A: Clone> Clone for LinkedList<A> {
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<A: fmt::Debug> fmt::Debug for LinkedList<A> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        let mut builder = f.debug_list();
-        for e in self {
-            builder = builder.entry(e);
-        }
-        builder.finish()
+        self.iter().fold(f.debug_list(), |b, e| b.entry(e)).finish()
     }
 }
 
diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs
index 856e7569f1c..29750a0a496 100644
--- a/src/libcore/fmt/mod.rs
+++ b/src/libcore/fmt/mod.rs
@@ -1017,22 +1017,7 @@ impl<'a> Debug for &'a (any::Any+'a) {
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<T: Debug> Debug for [T] {
     fn fmt(&self, f: &mut Formatter) -> Result {
-        if f.flags & (1 << (FlagV1::Alternate as u32)) == 0 {
-            try!(write!(f, "["));
-        }
-        let mut is_first = true;
-        for x in self {
-            if is_first {
-                is_first = false;
-            } else {
-                try!(write!(f, ", "));
-            }
-            try!(write!(f, "{:?}", *x))
-        }
-        if f.flags & (1 << (FlagV1::Alternate as u32)) == 0 {
-            try!(write!(f, "]"));
-        }
-        Ok(())
+        self.iter().fold(f.debug_list(), |b, e| b.entry(e)).finish()
     }
 }
 
diff --git a/src/libstd/collections/hash/map.rs b/src/libstd/collections/hash/map.rs
index fd62729cd8f..50f405ea3b8 100644
--- a/src/libstd/collections/hash/map.rs
+++ b/src/libstd/collections/hash/map.rs
@@ -1226,11 +1226,7 @@ impl<K, V, S> Debug for HashMap<K, V, S>
     where K: Eq + Hash + Debug, V: Debug, S: HashState
 {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        let mut builder = f.debug_map();
-        for (k, v) in self.iter() {
-            builder = builder.entry(k, v);
-        }
-        builder.finish()
+        self.iter().fold(f.debug_map(), |b, (k, v)| b.entry(k, v)).finish()
     }
 }
 
diff --git a/src/libstd/collections/hash/set.rs b/src/libstd/collections/hash/set.rs
index 44c3d8262a7..d3dae88265a 100644
--- a/src/libstd/collections/hash/set.rs
+++ b/src/libstd/collections/hash/set.rs
@@ -614,11 +614,7 @@ impl<T, S> fmt::Debug for HashSet<T, S>
           S: HashState
 {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        let mut builder = f.debug_set();
-        for x in self {
-            builder = builder.entry(x);
-        }
-        builder.finish()
+        self.iter().fold(f.debug_set(), |b, e| b.entry(e)).finish()
     }
 }