diff options
Diffstat (limited to 'crates/ra_ide/src/mock_analysis.rs')
-rw-r--r-- | crates/ra_ide/src/mock_analysis.rs | 17 |
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 | 2 | use std::{str::FromStr, sync::Arc}; | |
3 | use std::str::FromStr; | ||
4 | use std::sync::Arc; | ||
5 | 3 | ||
6 | use ra_cfg::CfgOptions; | 4 | use ra_cfg::CfgOptions; |
7 | use ra_db::{CrateName, Env}; | 5 | use ra_db::{CrateName, Env, FileSet, SourceRoot, VfsPath}; |
8 | use test_utils::{extract_offset, extract_range, parse_fixture, FixtureEntry, CURSOR_MARKER}; | 6 | use test_utils::{extract_offset, extract_range, parse_fixture, FixtureEntry, CURSOR_MARKER}; |
9 | 7 | ||
10 | use crate::{ | 8 | use 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 | } |