Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/lib.rs')
-rw-r--r--crates/ide/src/lib.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/crates/ide/src/lib.rs b/crates/ide/src/lib.rs
index 1925241924..930eaf2262 100644
--- a/crates/ide/src/lib.rs
+++ b/crates/ide/src/lib.rs
@@ -67,7 +67,7 @@ use ide_db::{
FxHashMap, FxIndexSet, LineIndexDatabase,
base_db::{
CrateOrigin, CrateWorkspaceData, Env, FileSet, RootQueryDb, SourceDatabase, VfsPath,
- salsa::Cancelled,
+ salsa::{Cancelled, Database},
},
prime_caches, symbol_index,
};
@@ -199,8 +199,13 @@ impl AnalysisHost {
pub fn per_query_memory_usage(&mut self) -> Vec<(String, profile::Bytes, usize)> {
self.db.per_query_memory_usage()
}
- pub fn request_cancellation(&mut self) {
- self.db.request_cancellation();
+ pub fn trigger_cancellation(&mut self) {
+ self.db.trigger_cancellation();
+ }
+ pub fn trigger_garbage_collection(&mut self) {
+ self.db.trigger_lru_eviction();
+ // SAFETY: `trigger_lru_eviction` triggers cancellation, so all running queries were canceled.
+ unsafe { hir::collect_ty_garbage() };
}
pub fn raw_database(&self) -> &RootDatabase {
&self.db