about summary refs log tree commit diff
path: root/compiler/rustc_serialize/src/serialize.rs
diff options
context:
space:
mode:
authorNicholas Nethercote <n.nethercote@gmail.com>2023-10-06 10:05:07 +1100
committerNicholas Nethercote <n.nethercote@gmail.com>2023-10-06 10:30:03 +1100
commit2db1d5983032b3f3f80646310c3b39f417a6af2d (patch)
tree03ee5f783eafc19cabba483e5a2c556343697976 /compiler/rustc_serialize/src/serialize.rs
parent5f69ca62f2ceb9fab475c05e6df426fcc26cb77d (diff)
downloadrust-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.rs46
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()
     }
 }