diff options
Diffstat (limited to 'crates/ra_ide_api')
-rw-r--r-- | crates/ra_ide_api/src/imp.rs | 5 | ||||
-rw-r--r-- | crates/ra_ide_api/src/lib.rs | 4 |
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 |