Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/prime_caches.rs')
| -rw-r--r-- | crates/ide-db/src/prime_caches.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/ide-db/src/prime_caches.rs b/crates/ide-db/src/prime_caches.rs index 238b2b3c7d..22dc3d9e29 100644 --- a/crates/ide-db/src/prime_caches.rs +++ b/crates/ide-db/src/prime_caches.rs @@ -6,7 +6,7 @@ mod topologic_sort; use std::time::Duration; -use hir::db::DefDatabase; +use hir::{db::DefDatabase, Symbol}; use itertools::Itertools; use crate::{ @@ -22,7 +22,7 @@ use crate::{ #[derive(Debug)] pub struct ParallelPrimeCachesProgress { /// the crates that we are currently priming. - pub crates_currently_indexing: Vec<String>, + pub crates_currently_indexing: Vec<Symbol>, /// the total number of crates we want to prime. pub crates_total: usize, /// the total number of crates that have finished priming @@ -49,7 +49,7 @@ pub fn parallel_prime_caches( }; enum ParallelPrimeCacheWorkerProgress { - BeginCrate { crate_id: CrateId, crate_name: String }, + BeginCrate { crate_id: CrateId, crate_name: Symbol }, EndCrate { crate_id: CrateId }, } @@ -112,7 +112,11 @@ pub fn parallel_prime_caches( for crate_id in &mut crates_to_prime { let krate = &graph[crate_id]; - let name = krate.display_name.as_deref().unwrap_or_default().to_owned(); + let name = krate + .display_name + .as_deref() + .cloned() + .unwrap_or_else(|| Symbol::integer(crate_id.into_raw().into_u32() as usize)); if krate.origin.is_lang() { additional_phases.push((crate_id, name.clone(), PrimingPhase::ImportMap)); } else if krate.origin.is_local() { @@ -195,7 +199,6 @@ pub fn parallel_prime_caches( } ParallelPrimeCacheWorkerProgress::EndCrate { crate_id } => { crates_currently_indexing.swap_remove(&crate_id); - crates_to_prime.mark_done(crate_id); crates_done += 1; } }; |