From 58ce331baaeefb9a030f858dad9e56b8a7b83737 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Wed, 8 Dec 2021 17:05:00 +0100 Subject: [PATCH] Fix library target overriding sysroot deps --- crates/project_model/src/workspace.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/project_model/src/workspace.rs b/crates/project_model/src/workspace.rs index 0335f8b174..60f99f368b 100644 --- a/crates/project_model/src/workspace.rs +++ b/crates/project_model/src/workspace.rs @@ -595,6 +595,9 @@ fn cargo_to_crate_graph( // Set deps to the core, std and to the lib target of the current package for (from, kind) in pkg_crates.get(&pkg).into_iter().flatten() { + // Add sysroot deps first so that a lib target named `core` etc. can overwrite them. + public_deps.add(*from, &mut crate_graph); + if let Some((to, name)) = lib_tgt.clone() { if to != *from && *kind != TargetKind::BuildScript { // (build script can not depend on its library target) @@ -606,7 +609,6 @@ fn cargo_to_crate_graph( add_dep(&mut crate_graph, *from, name, to); } } - public_deps.add(*from, &mut crate_graph); } }