From 2db1d5983032b3f3f80646310c3b39f417a6af2d Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 6 Oct 2023 10:05:07 +1100 Subject: [PATCH] Use `collect` for decoding more collection types. --- compiler/rustc_serialize/src/serialize.rs | 46 +++-------------------- 1 file changed, 6 insertions(+), 40 deletions(-) diff --git a/compiler/rustc_serialize/src/serialize.rs b/compiler/rustc_serialize/src/serialize.rs index 704de14dd460a..fa7e4d59fcc2e 100644 --- a/compiler/rustc_serialize/src/serialize.rs +++ b/compiler/rustc_serialize/src/serialize.rs @@ -578,13 +578,7 @@ where { fn decode(d: &mut D) -> BTreeMap { let len = d.read_usize(); - let mut map = BTreeMap::new(); - for _ in 0..len { - let key = Decodable::decode(d); - let val = Decodable::decode(d); - map.insert(key, val); - } - map + (0..len).map(|_| (Decodable::decode(d), Decodable::decode(d))).collect() } } @@ -606,11 +600,7 @@ where { fn decode(d: &mut D) -> BTreeSet { let len = d.read_usize(); - let mut set = BTreeSet::new(); - for _ in 0..len { - set.insert(Decodable::decode(d)); - } - set + (0..len).map(|_| Decodable::decode(d)).collect() } } @@ -637,14 +627,7 @@ where { fn decode(d: &mut D) -> HashMap { let len = d.read_usize(); - let state = Default::default(); - let mut map = HashMap::with_capacity_and_hasher(len, state); - for _ in 0..len { - let key = Decodable::decode(d); - let val = Decodable::decode(d); - map.insert(key, val); - } - map + (0..len).map(|_| (Decodable::decode(d), Decodable::decode(d))).collect() } } @@ -668,12 +651,7 @@ where { fn decode(d: &mut D) -> HashSet { let len = d.read_usize(); - let state = Default::default(); - let mut set = HashSet::with_capacity_and_hasher(len, state); - for _ in 0..len { - set.insert(Decodable::decode(d)); - } - set + (0..len).map(|_| Decodable::decode(d)).collect() } } @@ -700,14 +678,7 @@ where { fn decode(d: &mut D) -> indexmap::IndexMap { let len = d.read_usize(); - let state = Default::default(); - let mut map = indexmap::IndexMap::with_capacity_and_hasher(len, state); - for _ in 0..len { - let key = Decodable::decode(d); - let val = Decodable::decode(d); - map.insert(key, val); - } - map + (0..len).map(|_| (Decodable::decode(d), Decodable::decode(d))).collect() } } @@ -731,12 +702,7 @@ where { fn decode(d: &mut D) -> indexmap::IndexSet { let len = d.read_usize(); - let state = Default::default(); - let mut set = indexmap::IndexSet::with_capacity_and_hasher(len, state); - for _ in 0..len { - set.insert(Decodable::decode(d)); - } - set + (0..len).map(|_| Decodable::decode(d)).collect() } }