diff options
| author | ljedrz <ljedrz@gmail.com> | 2018-10-19 17:18:03 +0200 |
|---|---|---|
| committer | ljedrz <ljedrz@gmail.com> | 2018-10-29 09:45:19 +0100 |
| commit | 73d4eec186a0a1cd7c2da8cf9ea666315be3f46f (patch) | |
| tree | 4b4c2cddbee9bf1e4cceca89f585384b3745783a /src/librustc | |
| parent | 4e88b7363b7858960ccfd87326ece9d00bf4d973 (diff) | |
| download | rust-73d4eec186a0a1cd7c2da8cf9ea666315be3f46f.tar.gz rust-73d4eec186a0a1cd7c2da8cf9ea666315be3f46f.zip | |
Improve a few cases of collecting to an FxHash(Map/Set)
Diffstat (limited to 'src/librustc')
| -rw-r--r-- | src/librustc/infer/lexical_region_resolve/graphviz.rs | 5 | ||||
| -rw-r--r-- | src/librustc/middle/dependency_format.rs | 7 | ||||
| -rw-r--r-- | src/librustc/ty/query/on_disk_cache.rs | 9 |
3 files changed, 10 insertions, 11 deletions
diff --git a/src/librustc/infer/lexical_region_resolve/graphviz.rs b/src/librustc/infer/lexical_region_resolve/graphviz.rs index 3b92d032bdc..a210d63f129 100644 --- a/src/librustc/infer/lexical_region_resolve/graphviz.rs +++ b/src/librustc/infer/lexical_region_resolve/graphviz.rs @@ -230,10 +230,7 @@ impl<'a, 'gcx, 'tcx> dot::GraphWalk<'a> for ConstraintGraph<'a, 'gcx, 'tcx> { type Node = Node; type Edge = Edge<'tcx>; fn nodes(&self) -> dot::Nodes<'_, Node> { - let mut set = FxHashSet::default(); - for node in self.node_ids.keys() { - set.insert(*node); - } + let set = self.node_ids.keys().cloned().collect::<FxHashSet<_>>(); debug!("constraint graph has {} nodes", set.len()); set.into_iter().collect() } diff --git a/src/librustc/middle/dependency_format.rs b/src/librustc/middle/dependency_format.rs index 8b5c6d147d7..e3f9c51a123 100644 --- a/src/librustc/middle/dependency_format.rs +++ b/src/librustc/middle/dependency_format.rs @@ -94,12 +94,11 @@ pub enum Linkage { pub fn calculate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) { let sess = &tcx.sess; - let mut fmts = FxHashMap::default(); - for &ty in sess.crate_types.borrow().iter() { + let fmts = sess.crate_types.borrow().iter().map(|&ty| { let linkage = calculate_type(tcx, ty); verify_ok(tcx, &linkage); - fmts.insert(ty, linkage); - } + (ty, linkage) + }).collect::<FxHashMap<_, _>>(); sess.abort_if_errors(); sess.dependency_formats.set(fmts); } diff --git a/src/librustc/ty/query/on_disk_cache.rs b/src/librustc/ty/query/on_disk_cache.rs index 636720bf3c4..a6a05a44ca9 100644 --- a/src/librustc/ty/query/on_disk_cache.rs +++ b/src/librustc/ty/query/on_disk_cache.rs @@ -174,10 +174,13 @@ impl<'sess> OnDiskCache<'sess> { tcx.dep_graph.with_ignore(|| { // Allocate SourceFileIndices let (file_to_file_index, file_index_to_stable_id) = { - let mut file_to_file_index = FxHashMap::default(); - let mut file_index_to_stable_id = FxHashMap::default(); + let files = tcx.sess.source_map().files(); + let mut file_to_file_index = FxHashMap::with_capacity_and_hasher( + files.len(), Default::default()); + let mut file_index_to_stable_id = FxHashMap::with_capacity_and_hasher( + files.len(), Default::default()); - for (index, file) in tcx.sess.source_map().files().iter().enumerate() { + for (index, file) in files.iter().enumerate() { let index = SourceFileIndex(index as u32); let file_ptr: *const SourceFile = &**file as *const _; file_to_file_index.insert(file_ptr, index); |
