From 2fe41574a1695a6608d738f40ec51bc61fc7604a Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 19 Dec 2018 16:19:53 +0300 Subject: fix tests --- crates/ra_analysis/src/imp.rs | 15 ++++++++++++--- crates/ra_analysis/src/lib.rs | 6 +++--- crates/ra_analysis/src/mock_analysis.rs | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) (limited to 'crates/ra_analysis/src') diff --git a/crates/ra_analysis/src/imp.rs b/crates/ra_analysis/src/imp.rs index 46169d863..9e441ca79 100644 --- a/crates/ra_analysis/src/imp.rs +++ b/crates/ra_analysis/src/imp.rs @@ -43,10 +43,19 @@ impl AnalysisHostImpl { pub fn apply_change(&mut self, change: AnalysisChange) { log::info!("apply_change {:?}", change); // self.gc_syntax_trees(); - for root_id in change.new_roots { + if !change.new_roots.is_empty() { + let mut local_roots = Vec::clone(&self.db.local_roots()); + for (root_id, is_local) in change.new_roots { + self.db + .query_mut(ra_db::SourceRootQuery) + .set(root_id, Default::default()); + if is_local { + local_roots.push(root_id); + } + } self.db - .query_mut(ra_db::SourceRootQuery) - .set(root_id, Default::default()); + .query_mut(ra_db::LocalRootsQuery) + .set((), Arc::new(local_roots)); } for (root_id, root_change) in change.roots_changed { diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs index 0db3c3479..a1d462528 100644 --- a/crates/ra_analysis/src/lib.rs +++ b/crates/ra_analysis/src/lib.rs @@ -44,7 +44,7 @@ pub use ra_db::{ #[derive(Default)] pub struct AnalysisChange { - new_roots: Vec, + new_roots: Vec<(SourceRootId, bool)>, roots_changed: FxHashMap, files_changed: Vec<(FileId, Arc)>, libraries_added: Vec, @@ -95,8 +95,8 @@ impl AnalysisChange { pub fn new() -> AnalysisChange { AnalysisChange::default() } - pub fn add_root(&mut self, root_id: SourceRootId) { - self.new_roots.push(root_id); + pub fn add_root(&mut self, root_id: SourceRootId, is_local: bool) { + self.new_roots.push((root_id, is_local)); } pub fn add_file( &mut self, diff --git a/crates/ra_analysis/src/mock_analysis.rs b/crates/ra_analysis/src/mock_analysis.rs index 0c042e672..7cbdfb953 100644 --- a/crates/ra_analysis/src/mock_analysis.rs +++ b/crates/ra_analysis/src/mock_analysis.rs @@ -80,7 +80,7 @@ impl MockAnalysis { let mut file_map = FileMap::default(); let source_root = SourceRootId(0); let mut change = AnalysisChange::new(); - change.add_root(source_root); + change.add_root(source_root, true); for (path, contents) in self.files.into_iter() { assert!(path.starts_with('/')); let path = RelativePathBuf::from_path(&path[1..]).unwrap(); -- cgit v1.2.3