aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-01-25 16:11:58 +0000
committerAleksey Kladov <[email protected]>2019-01-25 16:11:58 +0000
commitf6adb85b681c23b64cc33197eb67d5d7fcf920f0 (patch)
treeca0ee39e7f1305019954b3a413a06f9431cb6648 /crates/ra_ide_api/src
parent6df1f71b7d0db209978595dc9be496e7f2ef88ec (diff)
add gc request
Diffstat (limited to 'crates/ra_ide_api/src')
-rw-r--r--crates/ra_ide_api/src/imp.rs5
-rw-r--r--crates/ra_ide_api/src/lib.rs4
2 files changed, 7 insertions, 2 deletions
diff --git a/crates/ra_ide_api/src/imp.rs b/crates/ra_ide_api/src/imp.rs
index 8ecb8b17c..961f7b230 100644
--- a/crates/ra_ide_api/src/imp.rs
+++ b/crates/ra_ide_api/src/imp.rs
@@ -72,13 +72,14 @@ impl db::RootDatabase {
72 self.set_source_root(root_id, Arc::new(source_root)); 72 self.set_source_root(root_id, Arc::new(source_root));
73 } 73 }
74 74
75 #[allow(unused)]
76 /// Ideally, we should call this function from time to time to collect heavy 75 /// Ideally, we should call this function from time to time to collect heavy
77 /// syntax trees. However, if we actually do that, everything is recomputed 76 /// syntax trees. However, if we actually do that, everything is recomputed
78 /// for some reason. Needs investigation. 77 /// for some reason. Needs investigation.
79 fn gc_syntax_trees(&mut self) { 78 pub(crate) fn collect_garbage(&mut self) {
80 self.query(ra_db::SourceFileQuery) 79 self.query(ra_db::SourceFileQuery)
81 .sweep(salsa::SweepStrategy::default().discard_values()); 80 .sweep(salsa::SweepStrategy::default().discard_values());
81 self.query(hir::db::HirSourceFileQuery)
82 .sweep(salsa::SweepStrategy::default().discard_values());
82 self.query(hir::db::FileItemsQuery) 83 self.query(hir::db::FileItemsQuery)
83 .sweep(salsa::SweepStrategy::default().discard_values()); 84 .sweep(salsa::SweepStrategy::default().discard_values());
84 self.query(hir::db::FileItemQuery) 85 self.query(hir::db::FileItemQuery)
diff --git a/crates/ra_ide_api/src/lib.rs b/crates/ra_ide_api/src/lib.rs
index 3502bfd2e..ffd026b04 100644
--- a/crates/ra_ide_api/src/lib.rs
+++ b/crates/ra_ide_api/src/lib.rs
@@ -285,6 +285,10 @@ impl AnalysisHost {
285 pub fn apply_change(&mut self, change: AnalysisChange) { 285 pub fn apply_change(&mut self, change: AnalysisChange) {
286 self.db.apply_change(change) 286 self.db.apply_change(change)
287 } 287 }
288
289 pub fn collect_garbage(&mut self) {
290 self.db.collect_garbage();
291 }
288} 292}
289 293
290/// Analysis is a snapshot of a world state at a moment in time. It is the main 294/// Analysis is a snapshot of a world state at a moment in time. It is the main