aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_db/src/fixture.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_db/src/fixture.rs')
-rw-r--r--crates/ra_db/src/fixture.rs18
1 files changed, 2 insertions, 16 deletions
diff --git a/crates/ra_db/src/fixture.rs b/crates/ra_db/src/fixture.rs
index f7d9118a9..bf897baff 100644
--- a/crates/ra_db/src/fixture.rs
+++ b/crates/ra_db/src/fixture.rs
@@ -114,7 +114,6 @@ fn with_single_file(db: &mut dyn SourceDatabaseExt, ra_fixture: &str) -> FileId
114 let crate_graph = if let Some(entry) = fixture { 114 let crate_graph = if let Some(entry) = fixture {
115 let meta = match ParsedMeta::from(&entry.meta) { 115 let meta = match ParsedMeta::from(&entry.meta) {
116 ParsedMeta::File(it) => it, 116 ParsedMeta::File(it) => it,
117 _ => panic!("with_single_file only support file meta"),
118 }; 117 };
119 118
120 let mut crate_graph = CrateGraph::default(); 119 let mut crate_graph = CrateGraph::default();
@@ -159,21 +158,14 @@ fn with_files(db: &mut dyn SourceDatabaseExt, fixture: &str) -> Option<FilePosit
159 let mut default_crate_root: Option<FileId> = None; 158 let mut default_crate_root: Option<FileId> = None;
160 159
161 let mut file_set = FileSet::default(); 160 let mut file_set = FileSet::default();
162 let mut source_root_id = WORKSPACE; 161 let source_root_id = WORKSPACE;
163 let mut source_root_prefix = "/".to_string(); 162 let source_root_prefix = "/".to_string();
164 let mut file_id = FileId(0); 163 let mut file_id = FileId(0);
165 164
166 let mut file_position = None; 165 let mut file_position = None;
167 166
168 for entry in fixture.iter() { 167 for entry in fixture.iter() {
169 let meta = match ParsedMeta::from(&entry.meta) { 168 let meta = match ParsedMeta::from(&entry.meta) {
170 ParsedMeta::Root { path } => {
171 let file_set = std::mem::replace(&mut file_set, FileSet::default());
172 db.set_source_root(source_root_id, Arc::new(SourceRoot::new_local(file_set)));
173 source_root_id.0 += 1;
174 source_root_prefix = path;
175 continue;
176 }
177 ParsedMeta::File(it) => it, 169 ParsedMeta::File(it) => it,
178 }; 170 };
179 assert!(meta.path.starts_with(&source_root_prefix)); 171 assert!(meta.path.starts_with(&source_root_prefix));
@@ -239,7 +231,6 @@ fn with_files(db: &mut dyn SourceDatabaseExt, fixture: &str) -> Option<FilePosit
239} 231}
240 232
241enum ParsedMeta { 233enum ParsedMeta {
242 Root { path: String },
243 File(FileMeta), 234 File(FileMeta),
244} 235}
245 236
@@ -255,11 +246,6 @@ struct FileMeta {
255impl From<&FixtureMeta> for ParsedMeta { 246impl From<&FixtureMeta> for ParsedMeta {
256 fn from(meta: &FixtureMeta) -> Self { 247 fn from(meta: &FixtureMeta) -> Self {
257 match meta { 248 match meta {
258 FixtureMeta::Root { path } => {
259 // `Self::Root` causes a false warning: 'variant is never constructed: `Root` '
260 // see https://github.com/rust-lang/rust/issues/69018
261 ParsedMeta::Root { path: path.to_owned() }
262 }
263 FixtureMeta::File(f) => Self::File(FileMeta { 249 FixtureMeta::File(f) => Self::File(FileMeta {
264 path: f.path.to_owned(), 250 path: f.path.to_owned(),
265 krate: f.crate_name.to_owned(), 251 krate: f.crate_name.to_owned(),