diff options
| author | Jake Heinz <jh@discordapp.com> | 2022-01-14 09:35:41 +0000 |
|---|---|---|
| committer | Jake Heinz <jh@discordapp.com> | 2022-01-14 09:35:41 +0000 |
| commit | c8aa2f6a6149b2b98c4c929c553d82c54e0a70eb (patch) | |
| tree | f9f3c2e7dbaf7099c1940a62a001abfb0455ccf4 | |
| parent | 5f0c1aa2ded3e55b14e029a8b37cb04c842bd174 (diff) | |
| download | rust-c8aa2f6a6149b2b98c4c929c553d82c54e0a70eb.tar.gz rust-c8aa2f6a6149b2b98c4c929c553d82c54e0a70eb.zip | |
use index map
| -rw-r--r-- | crates/ide/src/prime_caches.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/crates/ide/src/prime_caches.rs b/crates/ide/src/prime_caches.rs index 909f980a8fb..573f27bd2c7 100644 --- a/crates/ide/src/prime_caches.rs +++ b/crates/ide/src/prime_caches.rs @@ -5,9 +5,12 @@ mod topologic_sort; use hir::db::DefDatabase; -use ide_db::base_db::{ - salsa::{Database, ParallelDatabase, Snapshot}, - CrateGraph, CrateId, SourceDatabase, SourceDatabaseExt, +use ide_db::{ + base_db::{ + salsa::{Database, ParallelDatabase, Snapshot}, + CrateGraph, CrateId, SourceDatabase, SourceDatabaseExt, + }, + FxIndexMap, }; use rustc_hash::{FxHashMap, FxHashSet}; @@ -105,8 +108,11 @@ pub(crate) fn parallel_prime_caches( let crates_total = crates_to_prime.len(); let mut crates_done = 0; + + // an index map is used to preserve ordering so we can sort the progress report in order of + // "longest crate to index" first let mut crates_currently_indexing = - FxHashMap::with_capacity_and_hasher(num_worker_threads as _, Default::default()); + FxIndexMap::with_capacity_and_hasher(num_worker_threads as _, Default::default()); while !crates_to_prime.is_empty() { db.unwind_if_cancelled(); |
