Skip to content

Commit b82bcec

Browse files
committed
Fold collections debug impls
Also convert [T]'s Debug impl. The behavior of the alternate flag here's changing.
1 parent 4037f2a commit b82bcec

File tree

6 files changed

+6
-41
lines changed

6 files changed

+6
-41
lines changed

src/libcollections/btree/map.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -904,11 +904,7 @@ impl<K: Ord, V: Ord> Ord for BTreeMap<K, V> {
904904
#[stable(feature = "rust1", since = "1.0.0")]
905905
impl<K: Debug, V: Debug> Debug for BTreeMap<K, V> {
906906
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
907-
let mut builder = f.debug_map();
908-
for (k, v) in self {
909-
builder = builder.entry(k, v);
910-
}
911-
builder.finish()
907+
self.iter().fold(f.debug_map(), |b, (k, v)| b.entry(k, v)).finish()
912908
}
913909
}
914910

src/libcollections/btree/set.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -628,11 +628,7 @@ impl<'a, 'b, T: Ord + Clone> BitOr<&'b BTreeSet<T>> for &'a BTreeSet<T> {
628628
#[stable(feature = "rust1", since = "1.0.0")]
629629
impl<T: Debug> Debug for BTreeSet<T> {
630630
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
631-
let mut builder = f.debug_set();
632-
for x in self {
633-
builder = builder.entry(x);
634-
}
635-
builder.finish()
631+
self.iter().fold(f.debug_set(), |b, e| b.entry(e)).finish()
636632
}
637633
}
638634

src/libcollections/linked_list.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -927,11 +927,7 @@ impl<A: Clone> Clone for LinkedList<A> {
927927
#[stable(feature = "rust1", since = "1.0.0")]
928928
impl<A: fmt::Debug> fmt::Debug for LinkedList<A> {
929929
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
930-
let mut builder = f.debug_list();
931-
for e in self {
932-
builder = builder.entry(e);
933-
}
934-
builder.finish()
930+
self.iter().fold(f.debug_list(), |b, e| b.entry(e)).finish()
935931
}
936932
}
937933

src/libcore/fmt/mod.rs

+1-16
Original file line numberDiff line numberDiff line change
@@ -1017,22 +1017,7 @@ impl<'a> Debug for &'a (any::Any+'a) {
10171017
#[stable(feature = "rust1", since = "1.0.0")]
10181018
impl<T: Debug> Debug for [T] {
10191019
fn fmt(&self, f: &mut Formatter) -> Result {
1020-
if f.flags & (1 << (FlagV1::Alternate as u32)) == 0 {
1021-
try!(write!(f, "["));
1022-
}
1023-
let mut is_first = true;
1024-
for x in self {
1025-
if is_first {
1026-
is_first = false;
1027-
} else {
1028-
try!(write!(f, ", "));
1029-
}
1030-
try!(write!(f, "{:?}", *x))
1031-
}
1032-
if f.flags & (1 << (FlagV1::Alternate as u32)) == 0 {
1033-
try!(write!(f, "]"));
1034-
}
1035-
Ok(())
1020+
self.iter().fold(f.debug_list(), |b, e| b.entry(e)).finish()
10361021
}
10371022
}
10381023

src/libstd/collections/hash/map.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -1226,11 +1226,7 @@ impl<K, V, S> Debug for HashMap<K, V, S>
12261226
where K: Eq + Hash + Debug, V: Debug, S: HashState
12271227
{
12281228
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1229-
let mut builder = f.debug_map();
1230-
for (k, v) in self.iter() {
1231-
builder = builder.entry(k, v);
1232-
}
1233-
builder.finish()
1229+
self.iter().fold(f.debug_map(), |b, (k, v)| b.entry(k, v)).finish()
12341230
}
12351231
}
12361232

src/libstd/collections/hash/set.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -614,11 +614,7 @@ impl<T, S> fmt::Debug for HashSet<T, S>
614614
S: HashState
615615
{
616616
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
617-
let mut builder = f.debug_set();
618-
for x in self {
619-
builder = builder.entry(x);
620-
}
621-
builder.finish()
617+
self.iter().fold(f.debug_set(), |b, e| b.entry(e)).finish()
622618
}
623619
}
624620

0 commit comments

Comments
 (0)