aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/mock_analysis.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide/src/mock_analysis.rs')
-rw-r--r--crates/ra_ide/src/mock_analysis.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/crates/ra_ide/src/mock_analysis.rs b/crates/ra_ide/src/mock_analysis.rs
index 76910d09b..58fafecab 100644
--- a/crates/ra_ide/src/mock_analysis.rs
+++ b/crates/ra_ide/src/mock_analysis.rs
@@ -1,15 +1,12 @@
1//! FIXME: write short doc here 1//! FIXME: write short doc here
2 2use std::{str::FromStr, sync::Arc};
3use std::str::FromStr;
4use std::sync::Arc;
5 3
6use ra_cfg::CfgOptions; 4use ra_cfg::CfgOptions;
7use ra_db::{CrateName, Env}; 5use ra_db::{CrateName, Env, FileSet, SourceRoot, VfsPath};
8use test_utils::{extract_offset, extract_range, parse_fixture, FixtureEntry, CURSOR_MARKER}; 6use test_utils::{extract_offset, extract_range, parse_fixture, FixtureEntry, CURSOR_MARKER};
9 7
10use crate::{ 8use crate::{
11 Analysis, AnalysisChange, AnalysisHost, CrateGraph, Edition, FileId, FilePosition, FileRange, 9 Analysis, AnalysisChange, AnalysisHost, CrateGraph, Edition, FileId, FilePosition, FileRange,
12 SourceRootId,
13}; 10};
14 11
15#[derive(Debug)] 12#[derive(Debug)]
@@ -159,9 +156,8 @@ impl MockAnalysis {
159 } 156 }
160 pub fn analysis_host(self) -> AnalysisHost { 157 pub fn analysis_host(self) -> AnalysisHost {
161 let mut host = AnalysisHost::default(); 158 let mut host = AnalysisHost::default();
162 let source_root = SourceRootId(0);
163 let mut change = AnalysisChange::new(); 159 let mut change = AnalysisChange::new();
164 change.add_root(source_root, true); 160 let mut file_set = FileSet::default();
165 let mut crate_graph = CrateGraph::default(); 161 let mut crate_graph = CrateGraph::default();
166 let mut root_crate = None; 162 let mut root_crate = None;
167 for (i, data) in self.files.into_iter().enumerate() { 163 for (i, data) in self.files.into_iter().enumerate() {
@@ -179,7 +175,6 @@ impl MockAnalysis {
179 cfg_options, 175 cfg_options,
180 env, 176 env,
181 Default::default(), 177 Default::default(),
182 Default::default(),
183 )); 178 ));
184 } else if path.ends_with("/lib.rs") { 179 } else if path.ends_with("/lib.rs") {
185 let base = &path[..path.len() - "/lib.rs".len()]; 180 let base = &path[..path.len() - "/lib.rs".len()];
@@ -191,7 +186,6 @@ impl MockAnalysis {
191 cfg_options, 186 cfg_options,
192 env, 187 env,
193 Default::default(), 188 Default::default(),
194 Default::default(),
195 ); 189 );
196 if let Some(root_crate) = root_crate { 190 if let Some(root_crate) = root_crate {
197 crate_graph 191 crate_graph
@@ -199,9 +193,12 @@ impl MockAnalysis {
199 .unwrap(); 193 .unwrap();
200 } 194 }
201 } 195 }
202 change.add_file(source_root, file_id, path.into(), Arc::new(data.content().to_owned())); 196 let path = VfsPath::new_virtual_path(path.to_string());
197 file_set.insert(file_id, path);
198 change.change_file(file_id, Some(Arc::new(data.content().to_owned())));
203 } 199 }
204 change.set_crate_graph(crate_graph); 200 change.set_crate_graph(crate_graph);
201 change.set_roots(vec![SourceRoot::new_local(file_set)]);
205 host.apply_change(change); 202 host.apply_change(change);
206 host 203 host
207 } 204 }