Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/rust-analyzer/src/cli/analysis_stats.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs
index b02708bf24..29331000a1 100644
--- a/crates/rust-analyzer/src/cli/analysis_stats.rs
+++ b/crates/rust-analyzer/src/cli/analysis_stats.rs
@@ -22,7 +22,10 @@ use ide::{
Analysis, AnalysisHost, AnnotationConfig, DiagnosticsConfig, Edition, InlayFieldsToResolve,
InlayHintsConfig, LineCol, RootDatabase,
};
-use ide_db::{EditionedFileId, LineIndexDatabase, SnippetCap, base_db::SourceDatabase};
+use ide_db::{
+ EditionedFileId, LineIndexDatabase, SnippetCap,
+ base_db::{SourceDatabase, salsa::Database},
+};
use itertools::Itertools;
use load_cargo::{LoadCargoConfig, ProcMacroServerChoice, load_workspace};
use oorandom::Rand32;
@@ -104,7 +107,7 @@ impl flags::AnalysisStats {
}
eprintln!(")");
- let host = AnalysisHost::with_database(db);
+ let mut host = AnalysisHost::with_database(db);
let db = host.raw_database();
let mut analysis_sw = self.stop_watch();
@@ -250,6 +253,9 @@ impl flags::AnalysisStats {
self.run_term_search(&workspace, db, &vfs, file_ids, verbosity);
}
+ let db = host.raw_database_mut();
+ db.trigger_lru_eviction();
+
let total_span = analysis_sw.elapsed();
eprintln!("{:<20} {total_span}", "Total:");
report_metric("total time", total_span.time.as_millis() as u64, "ms");