about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_metadata/rmeta/decoder.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/librustc_metadata/rmeta/decoder.rs b/src/librustc_metadata/rmeta/decoder.rs
index e0347897e0c..3a64f51ca14 100644
--- a/src/librustc_metadata/rmeta/decoder.rs
+++ b/src/librustc_metadata/rmeta/decoder.rs
@@ -1863,14 +1863,13 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
     }
 
     fn all_def_path_hashes_and_def_ids(&self) -> Vec<(DefPathHash, DefId)> {
-        let mut result = Vec::new();
         let mut def_path_hashes = self.def_path_hash_cache.lock();
-        for index in 0..self.num_def_ids() {
-            let index = DefIndex::from_usize(index);
-            let def_path_hash = self.def_path_hash_unlocked(index, &mut def_path_hashes);
-            result.push((def_path_hash, self.local_def_id(index)));
-        }
-        result
+        (0..self.num_def_ids())
+            .map(|index| {
+                let index = DefIndex::from_usize(index);
+                (self.def_path_hash_unlocked(index, &mut def_path_hashes), self.local_def_id(index))
+            })
+            .collect()
     }
 
     /// Get the `DepNodeIndex` corresponding this crate. The result of this