Fix bench to work with relative paths

This commit is contained in:
Aleksey Kladov
2020-07-04 17:03:02 +02:00
parent 1d3a3c0782
commit 000d1db351
2 changed files with 14 additions and 15 deletions

View File

@@ -1,12 +1,6 @@
//! Benchmark operations like highlighting or goto definition.
use std::{
convert::TryFrom,
path::{Path, PathBuf},
str::FromStr,
sync::Arc,
time::Instant,
};
use std::{env, path::Path, str::FromStr, sync::Arc, time::Instant};
use anyhow::{format_err, Result};
use ra_db::{
@@ -18,13 +12,13 @@ use ra_ide::{Analysis, AnalysisChange, AnalysisHost, CompletionConfig, FilePosit
use crate::cli::{load_cargo::load_cargo, Verbosity};
pub enum BenchWhat {
Highlight { path: PathBuf },
Highlight { path: AbsPathBuf },
Complete(Position),
GotoDef(Position),
}
pub struct Position {
pub path: PathBuf,
pub path: AbsPathBuf,
pub line: u32,
pub column: u32,
}
@@ -34,7 +28,9 @@ impl FromStr for Position {
fn from_str(s: &str) -> Result<Self> {
let (path_line, column) = rsplit_at_char(s, ':')?;
let (path, line) = rsplit_at_char(path_line, ':')?;
Ok(Position { path: path.into(), line: line.parse()?, column: column.parse()? })
let path = env::current_dir().unwrap().join(path);
let path = AbsPathBuf::assert(path);
Ok(Position { path, line: line.parse()?, column: column.parse()? })
}
}
@@ -62,8 +58,7 @@ pub fn analysis_bench(
BenchWhat::Highlight { path } => path,
BenchWhat::Complete(pos) | BenchWhat::GotoDef(pos) => &pos.path,
};
let path = AbsPathBuf::try_from(path.clone()).unwrap();
let path = path.into();
let path = path.clone().into();
vfs.file_id(&path).ok_or_else(|| format_err!("Can't find {}", path))?
};