Remove temporary FixtureEntry parsed_meta field.

This commit is contained in:
vsrs 2020-05-16 12:25:26 +03:00
parent d901e0e709
commit 256fb7556e
4 changed files with 10 additions and 11 deletions

View file

@ -99,7 +99,7 @@ fn with_single_file(db: &mut dyn SourceDatabaseExt, ra_fixture: &str) -> FileId
let fixture = parse_single_fixture(ra_fixture); let fixture = parse_single_fixture(ra_fixture);
let crate_graph = if let Some(entry) = fixture { let crate_graph = if let Some(entry) = fixture {
let meta = match ParsedMeta::from(&entry.parsed_meta) { let meta = match ParsedMeta::from(&entry.meta) {
ParsedMeta::File(it) => it, ParsedMeta::File(it) => it,
_ => panic!("with_single_file only support file meta"), _ => panic!("with_single_file only support file meta"),
}; };
@ -156,7 +156,7 @@ fn with_files(db: &mut dyn SourceDatabaseExt, fixture: &str) -> Option<FilePosit
let mut file_position = None; let mut file_position = None;
for entry in fixture.iter() { for entry in fixture.iter() {
let meta = match ParsedMeta::from(&entry.parsed_meta) { let meta = match ParsedMeta::from(&entry.meta) {
ParsedMeta::Root { path } => { ParsedMeta::Root { path } => {
let source_root = std::mem::replace(&mut source_root, SourceRoot::new_local()); let source_root = std::mem::replace(&mut source_root, SourceRoot::new_local());
db.set_source_root(source_root_id, Arc::new(source_root)); db.set_source_root(source_root_id, Arc::new(source_root));

View file

@ -35,7 +35,7 @@ impl MockAnalysis {
pub fn with_files(fixture: &str) -> MockAnalysis { pub fn with_files(fixture: &str) -> MockAnalysis {
let mut res = MockAnalysis::new(); let mut res = MockAnalysis::new();
for entry in parse_fixture(fixture) { for entry in parse_fixture(fixture) {
res.add_file(&entry.meta, &entry.text); res.add_file(entry.meta.path().as_str(), &entry.text);
} }
res res
} }
@ -48,9 +48,10 @@ impl MockAnalysis {
for entry in parse_fixture(fixture) { for entry in parse_fixture(fixture) {
if entry.text.contains(CURSOR_MARKER) { if entry.text.contains(CURSOR_MARKER) {
assert!(position.is_none(), "only one marker (<|>) per fixture is allowed"); assert!(position.is_none(), "only one marker (<|>) per fixture is allowed");
position = Some(res.add_file_with_position(&entry.meta, &entry.text)); position =
Some(res.add_file_with_position(&entry.meta.path().as_str(), &entry.text));
} else { } else {
res.add_file(&entry.meta, &entry.text); res.add_file(&entry.meta.path().as_str(), &entry.text);
} }
} }
let position = position.expect("expected a marker (<|>)"); let position = position.expect("expected a marker (<|>)");

View file

@ -68,7 +68,7 @@ impl<'a> Project<'a> {
let mut paths = vec![]; let mut paths = vec![];
for entry in parse_fixture(self.fixture) { for entry in parse_fixture(self.fixture) {
let path = tmp_dir.path().join(entry.meta); let path = tmp_dir.path().join(entry.meta.path().as_str());
fs::create_dir_all(path.parent().unwrap()).unwrap(); fs::create_dir_all(path.parent().unwrap()).unwrap();
fs::write(path.as_path(), entry.text.as_bytes()).unwrap(); fs::write(path.as_path(), entry.text.as_bytes()).unwrap();
paths.push((path, entry.text)); paths.push((path, entry.text));

View file

@ -161,10 +161,8 @@ pub fn add_cursor(text: &str, offset: TextSize) -> String {
#[derive(Debug, Eq, PartialEq)] #[derive(Debug, Eq, PartialEq)]
pub struct FixtureEntry { pub struct FixtureEntry {
pub meta: String, pub meta: FixtureMeta,
pub text: String, pub text: String,
pub parsed_meta: FixtureMeta,
} }
#[derive(Debug, Eq, PartialEq)] #[derive(Debug, Eq, PartialEq)]
@ -231,8 +229,8 @@ The offending line: {:?}"#,
for line in lines.by_ref() { for line in lines.by_ref() {
if line.starts_with("//-") { if line.starts_with("//-") {
let meta = line["//-".len()..].trim().to_string(); let meta = line["//-".len()..].trim().to_string();
let parsed_meta = parse_meta(&meta); let meta = parse_meta(&meta);
res.push(FixtureEntry { meta, parsed_meta, text: String::new() }) res.push(FixtureEntry { meta, text: String::new() })
} else if let Some(entry) = res.last_mut() { } else if let Some(entry) = res.last_mut() {
entry.text.push_str(line); entry.text.push_str(line);
entry.text.push('\n'); entry.text.push('\n');