mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 13:03:31 +00:00
More Rustic API for Env
This commit is contained in:
parent
eb613c74da
commit
b68ef1231d
4 changed files with 8 additions and 20 deletions
|
@ -222,7 +222,7 @@ impl From<Fixture> for FileMeta {
|
||||||
.edition
|
.edition
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map_or(Edition::Edition2018, |v| Edition::from_str(&v).unwrap()),
|
.map_or(Edition::Edition2018, |v| Edition::from_str(&v).unwrap()),
|
||||||
env: Env::from(f.env.iter()),
|
env: f.env.into_iter().collect(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//! actual IO. See `vfs` and `project_model` in the `rust-analyzer` crate for how
|
//! actual IO. See `vfs` and `project_model` in the `rust-analyzer` crate for how
|
||||||
//! actual IO is done and lowered to input.
|
//! actual IO is done and lowered to input.
|
||||||
|
|
||||||
use std::{fmt, ops, str::FromStr, sync::Arc};
|
use std::{fmt, iter::FromIterator, ops, str::FromStr, sync::Arc};
|
||||||
|
|
||||||
use ra_cfg::CfgOptions;
|
use ra_cfg::CfgOptions;
|
||||||
use ra_syntax::SmolStr;
|
use ra_syntax::SmolStr;
|
||||||
|
@ -298,18 +298,9 @@ impl fmt::Display for Edition {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T> From<T> for Env
|
impl FromIterator<(String, String)> for Env {
|
||||||
where
|
fn from_iter<T: IntoIterator<Item = (String, String)>>(iter: T) -> Self {
|
||||||
T: Iterator<Item = (&'a String, &'a String)>,
|
Env { entries: FromIterator::from_iter(iter) }
|
||||||
{
|
|
||||||
fn from(iter: T) -> Self {
|
|
||||||
let mut result = Self::default();
|
|
||||||
|
|
||||||
for (k, v) in iter {
|
|
||||||
result.entries.insert(k.to_owned(), v.to_owned());
|
|
||||||
}
|
|
||||||
|
|
||||||
result
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use ra_cfg::CfgOptions;
|
use ra_cfg::CfgOptions;
|
||||||
use ra_db::{CrateName, Env, FileSet, SourceRoot, VfsPath};
|
use ra_db::{CrateName, FileSet, SourceRoot, VfsPath};
|
||||||
use test_utils::{
|
use test_utils::{
|
||||||
extract_annotations, extract_range_or_offset, Fixture, RangeOrOffset, CURSOR_MARKER,
|
extract_annotations, extract_range_or_offset, Fixture, RangeOrOffset, CURSOR_MARKER,
|
||||||
};
|
};
|
||||||
|
@ -110,7 +110,7 @@ impl MockAnalysis {
|
||||||
data.edition.and_then(|it| it.parse().ok()).unwrap_or(Edition::Edition2018);
|
data.edition.and_then(|it| it.parse().ok()).unwrap_or(Edition::Edition2018);
|
||||||
|
|
||||||
let file_id = FileId(i as u32 + 1);
|
let file_id = FileId(i as u32 + 1);
|
||||||
let env = Env::from(data.env.iter());
|
let env = data.env.into_iter().collect();
|
||||||
if path == "/lib.rs" || path == "/main.rs" {
|
if path == "/lib.rs" || path == "/main.rs" {
|
||||||
root_crate = Some(crate_graph.add_crate_root(
|
root_crate = Some(crate_graph.add_crate_root(
|
||||||
file_id,
|
file_id,
|
||||||
|
|
|
@ -258,10 +258,7 @@ impl ProjectWorkspace {
|
||||||
let file_path = &krate.root_module;
|
let file_path = &krate.root_module;
|
||||||
let file_id = load(&file_path)?;
|
let file_id = load(&file_path)?;
|
||||||
|
|
||||||
let mut env = Env::default();
|
let env = krate.env.clone().into_iter().collect();
|
||||||
for (k, v) in &krate.env {
|
|
||||||
env.set(k, v.clone());
|
|
||||||
}
|
|
||||||
let proc_macro = krate
|
let proc_macro = krate
|
||||||
.proc_macro_dylib_path
|
.proc_macro_dylib_path
|
||||||
.clone()
|
.clone()
|
||||||
|
|
Loading…
Reference in a new issue