From 75fafd6fcc010c71d770d19bea4b744b92c5267b Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 16 Mar 2021 15:28:02 +0100 Subject: Add new_source_root meta to test fixtures --- crates/base_db/src/fixture.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'crates/base_db') diff --git a/crates/base_db/src/fixture.rs b/crates/base_db/src/fixture.rs index 5c9824814..cad6866aa 100644 --- a/crates/base_db/src/fixture.rs +++ b/crates/base_db/src/fixture.rs @@ -57,7 +57,7 @@ //! fn insert_source_code_here() {} //! " //! ``` -use std::{str::FromStr, sync::Arc}; +use std::{mem, str::FromStr, sync::Arc}; use cfg::CfgOptions; use rustc_hash::FxHashMap; @@ -148,6 +148,7 @@ impl ChangeFixture { let mut file_set = FileSet::default(); let source_root_prefix = "/".to_string(); let mut file_id = FileId(0); + let mut roots = Vec::new(); let mut file_position = None; @@ -168,6 +169,10 @@ impl ChangeFixture { let meta = FileMeta::from(entry); assert!(meta.path.starts_with(&source_root_prefix)); + if meta.introduce_new_source_root { + roots.push(SourceRoot::new_local(mem::take(&mut file_set))); + } + if let Some(krate) = meta.krate { let crate_name = CrateName::normalize_dashes(&krate); let crate_id = crate_graph.add_crate_root( @@ -215,7 +220,8 @@ impl ChangeFixture { } } - change.set_roots(vec![SourceRoot::new_local(file_set)]); + roots.push(SourceRoot::new_local(mem::take(&mut file_set))); + change.set_roots(roots); change.set_crate_graph(crate_graph); ChangeFixture { file_position, files, change } @@ -229,6 +235,7 @@ struct FileMeta { cfg: CfgOptions, edition: Edition, env: Env, + introduce_new_source_root: bool, } impl From for FileMeta { @@ -247,6 +254,7 @@ impl From for FileMeta { .as_ref() .map_or(Edition::Edition2018, |v| Edition::from_str(&v).unwrap()), env: f.env.into_iter().collect(), + introduce_new_source_root: f.introduce_new_source_root, } } } -- cgit v1.2.3