Skip to content

Commit 2db1d59

Browse files
committed
Use collect for decoding more collection types.
1 parent 5f69ca6 commit 2db1d59

File tree

1 file changed

+6
-40
lines changed

1 file changed

+6
-40
lines changed

compiler/rustc_serialize/src/serialize.rs

+6-40
Original file line numberDiff line numberDiff line change
@@ -578,13 +578,7 @@ where
578578
{
579579
fn decode(d: &mut D) -> BTreeMap<K, V> {
580580
let len = d.read_usize();
581-
let mut map = BTreeMap::new();
582-
for _ in 0..len {
583-
let key = Decodable::decode(d);
584-
let val = Decodable::decode(d);
585-
map.insert(key, val);
586-
}
587-
map
581+
(0..len).map(|_| (Decodable::decode(d), Decodable::decode(d))).collect()
588582
}
589583
}
590584

@@ -606,11 +600,7 @@ where
606600
{
607601
fn decode(d: &mut D) -> BTreeSet<T> {
608602
let len = d.read_usize();
609-
let mut set = BTreeSet::new();
610-
for _ in 0..len {
611-
set.insert(Decodable::decode(d));
612-
}
613-
set
603+
(0..len).map(|_| Decodable::decode(d)).collect()
614604
}
615605
}
616606

@@ -637,14 +627,7 @@ where
637627
{
638628
fn decode(d: &mut D) -> HashMap<K, V, S> {
639629
let len = d.read_usize();
640-
let state = Default::default();
641-
let mut map = HashMap::with_capacity_and_hasher(len, state);
642-
for _ in 0..len {
643-
let key = Decodable::decode(d);
644-
let val = Decodable::decode(d);
645-
map.insert(key, val);
646-
}
647-
map
630+
(0..len).map(|_| (Decodable::decode(d), Decodable::decode(d))).collect()
648631
}
649632
}
650633

@@ -668,12 +651,7 @@ where
668651
{
669652
fn decode(d: &mut D) -> HashSet<T, S> {
670653
let len = d.read_usize();
671-
let state = Default::default();
672-
let mut set = HashSet::with_capacity_and_hasher(len, state);
673-
for _ in 0..len {
674-
set.insert(Decodable::decode(d));
675-
}
676-
set
654+
(0..len).map(|_| Decodable::decode(d)).collect()
677655
}
678656
}
679657

@@ -700,14 +678,7 @@ where
700678
{
701679
fn decode(d: &mut D) -> indexmap::IndexMap<K, V, S> {
702680
let len = d.read_usize();
703-
let state = Default::default();
704-
let mut map = indexmap::IndexMap::with_capacity_and_hasher(len, state);
705-
for _ in 0..len {
706-
let key = Decodable::decode(d);
707-
let val = Decodable::decode(d);
708-
map.insert(key, val);
709-
}
710-
map
681+
(0..len).map(|_| (Decodable::decode(d), Decodable::decode(d))).collect()
711682
}
712683
}
713684

@@ -731,12 +702,7 @@ where
731702
{
732703
fn decode(d: &mut D) -> indexmap::IndexSet<T, S> {
733704
let len = d.read_usize();
734-
let state = Default::default();
735-
let mut set = indexmap::IndexSet::with_capacity_and_hasher(len, state);
736-
for _ in 0..len {
737-
set.insert(Decodable::decode(d));
738-
}
739-
set
705+
(0..len).map(|_| Decodable::decode(d)).collect()
740706
}
741707
}
742708

0 commit comments

Comments
 (0)