diff --git a/src/cargo/ops/resolve.rs b/src/cargo/ops/resolve.rs index cf1af42e1..8df8e4da6 100644 --- a/src/cargo/ops/resolve.rs +++ b/src/cargo/ops/resolve.rs @@ -213,7 +213,6 @@ pub fn resolve_with_previous<'a, 'cfg>( registry.lock_patches(); } - for member in ws.members() { registry.add_sources(&[member.package_id().source_id().clone()])?; } @@ -223,12 +222,18 @@ pub fn resolve_with_previous<'a, 'cfg>( let mut members = Vec::new(); match method { Method::Everything => members.extend(ws.members()), - Method::Required { features, all_features, uses_default_features, .. } => { + Method::Required { + features, + all_features, + uses_default_features, + .. + } => { if specs.len() > 1 && !features.is_empty() { bail!("cannot specify features for more than one package"); } members.extend( - ws.members().filter(|m| specs.iter().any(|spec| spec.matches(m.package_id()))) + ws.members() + .filter(|m| specs.iter().any(|spec| spec.matches(m.package_id()))), ); // Edge case: running `cargo build -p foo`, where `foo` is not a member // of current workspace. Add all packages from workspace to get `foo` @@ -293,7 +298,6 @@ pub fn resolve_with_previous<'a, 'cfg>( } }; - let root_replace = ws.root_replace(); let replace = match previous { diff --git a/tests/testsuite/features.rs b/tests/testsuite/features.rs index ffa741310..e224b4507 100644 --- a/tests/testsuite/features.rs +++ b/tests/testsuite/features.rs @@ -1664,39 +1664,46 @@ fn combining_features_and_package() { main = [] "#, ) - .file("foo/src/main.rs", r#" + .file( + "foo/src/main.rs", + r#" #[cfg(feature = "main")] fn main() {} - "#) + "#, + ) .build(); assert_that( p.cargo("build -Z package-features --all --features main") .masquerade_as_nightly_cargo(), - execs().with_status(101).with_stderr_contains("\ -[ERROR] cannot specify features for more than one package" + execs().with_status(101).with_stderr_contains( + "\ + [ERROR] cannot specify features for more than one package", ), ); assert_that( p.cargo("build -Z package-features --package dep --features main") .masquerade_as_nightly_cargo(), - execs().with_status(101).with_stderr_contains("\ -[ERROR] cannot specify features for packages outside of workspace" + execs().with_status(101).with_stderr_contains( + "\ + [ERROR] cannot specify features for packages outside of workspace", ), ); assert_that( p.cargo("build -Z package-features --package dep --all-features") .masquerade_as_nightly_cargo(), - execs().with_status(101).with_stderr_contains("\ -[ERROR] cannot specify features for packages outside of workspace" + execs().with_status(101).with_stderr_contains( + "\ + [ERROR] cannot specify features for packages outside of workspace", ), ); assert_that( p.cargo("build -Z package-features --package dep --no-default-features") .masquerade_as_nightly_cargo(), - execs().with_status(101).with_stderr_contains("\ -[ERROR] cannot specify features for packages outside of workspace" + execs().with_status(101).with_stderr_contains( + "\ + [ERROR] cannot specify features for packages outside of workspace", ), );