From 1190f5fea249654f9c91f424f21f7f45a8a86ac8 Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Mon, 28 Feb 2022 11:28:01 +0800 Subject: [PATCH] Look at FeaturesFor:: to decide if a dependency participates in feature resolution Fixes #10431. --- src/cargo/core/resolver/features.rs | 6 ++++++ tests/testsuite/artifact_dep.rs | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cargo/core/resolver/features.rs b/src/cargo/core/resolver/features.rs index 41e497c0354..e31d596f5dc 100644 --- a/src/cargo/core/resolver/features.rs +++ b/src/cargo/core/resolver/features.rs @@ -769,6 +769,12 @@ impl<'a, 'cfg> FeatureResolver<'a, 'cfg> { .target_data .dep_platform_activated(dep, CompileKind::Host); } + // We always count platforms as activated if the target stems from an artifact + // dependency's target specification. This triggers in conjunction with + // `[target.'cfg(…)'.dependencies]` manifest sections. + if matches!(fk, FeaturesFor::NormalOrDevOrArtifactTarget(Some(_))) { + return true; + } // Not a build dependency, and not for a build script, so must be Target. self.requested_targets .iter() diff --git a/tests/testsuite/artifact_dep.rs b/tests/testsuite/artifact_dep.rs index 616592c8126..6d19a46f122 100644 --- a/tests/testsuite/artifact_dep.rs +++ b/tests/testsuite/artifact_dep.rs @@ -426,7 +426,6 @@ fn features_are_not_unified_among_lib_and_bin_dep_of_different_target() { } #[cargo_test] -#[ignore] fn feature_resolution_works_for_cfg_target_specification() { if cross_compile::disabled() { return;