Skip to content

Commit e88b5fe

Browse files
committed
Simplify
1 parent bd4d375 commit e88b5fe

File tree

1 file changed

+50
-54
lines changed

1 file changed

+50
-54
lines changed

crates/project_model/src/workspace.rs

Lines changed: 50 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -304,14 +304,14 @@ fn cargo_to_crate_graph(
304304
for pkg in cargo.packages() {
305305
let mut lib_tgt = None;
306306
for &tgt in cargo[pkg].targets.iter() {
307-
if let Some(crate_id) = add_target_crate_root(
308-
&mut crate_graph,
309-
&cargo[pkg],
310-
&cargo[tgt],
311-
&cfg_options,
312-
proc_macro_client,
313-
load,
314-
) {
307+
if let Some(file_id) = load(&cargo[tgt].root) {
308+
let crate_id = add_target_crate_root(
309+
&mut crate_graph,
310+
&cargo[pkg],
311+
&cfg_options,
312+
proc_macro_client,
313+
file_id,
314+
);
315315
if cargo[tgt].kind == TargetKind::Lib {
316316
lib_tgt = Some((crate_id, cargo[tgt].name.clone()));
317317
pkg_to_lib_crate.insert(pkg, crate_id);
@@ -380,14 +380,14 @@ fn cargo_to_crate_graph(
380380
continue;
381381
}
382382

383-
if let Some(crate_id) = add_target_crate_root(
384-
&mut crate_graph,
385-
&rustc_workspace[pkg],
386-
&rustc_workspace[tgt],
387-
&cfg_options,
388-
proc_macro_client,
389-
load,
390-
) {
383+
if let Some(file_id) = load(&rustc_workspace[tgt].root) {
384+
let crate_id = add_target_crate_root(
385+
&mut crate_graph,
386+
&rustc_workspace[pkg],
387+
&cfg_options,
388+
proc_macro_client,
389+
file_id,
390+
);
391391
pkg_to_lib_crate.insert(pkg, crate_id);
392392
// Add dependencies on the core / std / alloc for rustc
393393
for (name, krate) in public_deps.iter() {
@@ -432,49 +432,45 @@ fn cargo_to_crate_graph(
432432
fn add_target_crate_root(
433433
crate_graph: &mut CrateGraph,
434434
pkg: &cargo_workspace::PackageData,
435-
tgt: &cargo_workspace::TargetData,
436435
cfg_options: &CfgOptions,
437436
proc_macro_client: &ProcMacroClient,
438-
load: &mut dyn FnMut(&AbsPath) -> Option<FileId>,
439-
) -> Option<CrateId> {
440-
let root = tgt.root.as_path();
441-
if let Some(file_id) = load(root) {
442-
let edition = pkg.edition;
443-
let cfg_options = {
444-
let mut opts = cfg_options.clone();
445-
for feature in pkg.features.iter() {
446-
opts.insert_key_value("feature".into(), feature.into());
447-
}
448-
opts.extend(pkg.cfgs.iter().cloned());
449-
opts
450-
};
451-
let mut env = Env::default();
452-
if let Some(out_dir) = &pkg.out_dir {
453-
// NOTE: cargo and rustc seem to hide non-UTF-8 strings from env! and option_env!()
454-
if let Some(out_dir) = out_dir.to_str().map(|s| s.to_owned()) {
455-
env.set("OUT_DIR", out_dir);
456-
}
437+
file_id: FileId,
438+
) -> CrateId {
439+
let edition = pkg.edition;
440+
let cfg_options = {
441+
let mut opts = cfg_options.clone();
442+
for feature in pkg.features.iter() {
443+
opts.insert_key_value("feature".into(), feature.into());
444+
}
445+
opts.extend(pkg.cfgs.iter().cloned());
446+
opts
447+
};
448+
let mut env = Env::default();
449+
if let Some(out_dir) = &pkg.out_dir {
450+
// NOTE: cargo and rustc seem to hide non-UTF-8 strings from env! and option_env!()
451+
if let Some(out_dir) = out_dir.to_str().map(|s| s.to_owned()) {
452+
env.set("OUT_DIR", out_dir);
457453
}
458-
let proc_macro = pkg
459-
.proc_macro_dylib_path
460-
.as_ref()
461-
.map(|it| proc_macro_client.by_dylib_path(&it))
462-
.unwrap_or_default();
463-
464-
let display_name = CrateDisplayName::from_canonical_name(pkg.name.clone());
465-
let crate_id = crate_graph.add_crate_root(
466-
file_id,
467-
edition,
468-
Some(display_name),
469-
cfg_options,
470-
env,
471-
proc_macro.clone(),
472-
);
473-
474-
return Some(crate_id);
475454
}
476-
None
455+
let proc_macro = pkg
456+
.proc_macro_dylib_path
457+
.as_ref()
458+
.map(|it| proc_macro_client.by_dylib_path(&it))
459+
.unwrap_or_default();
460+
461+
let display_name = CrateDisplayName::from_canonical_name(pkg.name.clone());
462+
let crate_id = crate_graph.add_crate_root(
463+
file_id,
464+
edition,
465+
Some(display_name),
466+
cfg_options,
467+
env,
468+
proc_macro.clone(),
469+
);
470+
471+
crate_id
477472
}
473+
478474
fn sysroot_to_crate_graph(
479475
crate_graph: &mut CrateGraph,
480476
sysroot: &Sysroot,

0 commit comments

Comments
 (0)