diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-10-06 10:05:07 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2023-10-06 10:30:03 +1100 |
| commit | 2db1d5983032b3f3f80646310c3b39f417a6af2d (patch) | |
| tree | 03ee5f783eafc19cabba483e5a2c556343697976 /compiler/rustc_serialize/src/serialize.rs | |
| parent | 5f69ca62f2ceb9fab475c05e6df426fcc26cb77d (diff) | |
| download | rust-2db1d5983032b3f3f80646310c3b39f417a6af2d.tar.gz rust-2db1d5983032b3f3f80646310c3b39f417a6af2d.zip | |
Use `collect` for decoding more collection types.
Diffstat (limited to 'compiler/rustc_serialize/src/serialize.rs')
| -rw-r--r-- | compiler/rustc_serialize/src/serialize.rs | 46 |
1 files changed, 6 insertions, 40 deletions
diff --git a/compiler/rustc_serialize/src/serialize.rs b/compiler/rustc_serialize/src/serialize.rs index 704de14dd46..fa7e4d59fcc 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<K, V> { 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<T> { 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<K, V, S> { 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<T, S> { 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<K, V, S> { 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<T, S> { 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() } } |
