mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-29 13:25:09 +00:00
Make code more readable
This commit is contained in:
parent
a0c4dbc399
commit
bd4d375a64
1 changed files with 219 additions and 198 deletions
|
@ -197,9 +197,31 @@ impl ProjectWorkspace {
|
|||
proc_macro_client: &ProcMacroClient,
|
||||
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
|
||||
) -> CrateGraph {
|
||||
let mut crate_graph = CrateGraph::default();
|
||||
match self {
|
||||
let mut crate_graph = match self {
|
||||
ProjectWorkspace::Json { project, sysroot } => {
|
||||
project_json_to_crate_graph(target, proc_macro_client, load, project, sysroot)
|
||||
}
|
||||
ProjectWorkspace::Cargo { cargo, sysroot, rustc } => {
|
||||
cargo_to_crate_graph(target, proc_macro_client, load, cargo, sysroot, rustc)
|
||||
}
|
||||
};
|
||||
if crate_graph.patch_cfg_if() {
|
||||
log::debug!("Patched std to depend on cfg-if")
|
||||
} else {
|
||||
log::debug!("Did not patch std to depend on cfg-if")
|
||||
}
|
||||
crate_graph
|
||||
}
|
||||
}
|
||||
|
||||
fn project_json_to_crate_graph(
|
||||
target: Option<&str>,
|
||||
proc_macro_client: &ProcMacroClient,
|
||||
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
|
||||
project: &ProjectJson,
|
||||
sysroot: &Option<Sysroot>,
|
||||
) -> CrateGraph {
|
||||
let mut crate_graph = CrateGraph::default();
|
||||
let sysroot_deps = sysroot
|
||||
.as_ref()
|
||||
.map(|sysroot| sysroot_to_crate_graph(&mut crate_graph, sysroot, target, load));
|
||||
|
@ -214,15 +236,12 @@ impl ProjectWorkspace {
|
|||
})
|
||||
.map(|(crate_id, krate, file_id)| {
|
||||
let env = krate.env.clone().into_iter().collect();
|
||||
let proc_macro = krate
|
||||
.proc_macro_dylib_path
|
||||
.clone()
|
||||
.map(|it| proc_macro_client.by_dylib_path(&it));
|
||||
let proc_macro =
|
||||
krate.proc_macro_dylib_path.clone().map(|it| proc_macro_client.by_dylib_path(&it));
|
||||
|
||||
let target = krate.target.as_deref().or(target);
|
||||
let target_cfgs = cfg_cache
|
||||
.entry(target)
|
||||
.or_insert_with(|| get_rustc_cfg_options(target));
|
||||
let target_cfgs =
|
||||
cfg_cache.entry(target).or_insert_with(|| get_rustc_cfg_options(target));
|
||||
|
||||
let mut cfg_options = CfgOptions::default();
|
||||
cfg_options.extend(target_cfgs.iter().chain(krate.cfg.iter()).cloned());
|
||||
|
@ -255,8 +274,18 @@ impl ProjectWorkspace {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ProjectWorkspace::Cargo { cargo, sysroot, rustc } => {
|
||||
crate_graph
|
||||
}
|
||||
|
||||
fn cargo_to_crate_graph(
|
||||
target: Option<&str>,
|
||||
proc_macro_client: &ProcMacroClient,
|
||||
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
|
||||
cargo: &CargoWorkspace,
|
||||
sysroot: &Sysroot,
|
||||
rustc: &Option<CargoWorkspace>,
|
||||
) -> CrateGraph {
|
||||
let mut crate_graph = CrateGraph::default();
|
||||
let (public_deps, libproc_macro) =
|
||||
sysroot_to_crate_graph(&mut crate_graph, sysroot, target, load);
|
||||
|
||||
|
@ -397,15 +426,7 @@ impl ProjectWorkspace {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if crate_graph.patch_cfg_if() {
|
||||
log::debug!("Patched std to depend on cfg-if")
|
||||
} else {
|
||||
log::debug!("Did not patch std to depend on cfg-if")
|
||||
}
|
||||
crate_graph
|
||||
}
|
||||
}
|
||||
|
||||
fn add_target_crate_root(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue