From c18275b1aad92a5aa4dbafd4cb010c171b0eb460 Mon Sep 17 00:00:00 2001 From: Weihang Lo Date: Thu, 31 Mar 2022 07:23:52 +0800 Subject: [PATCH] Guard that array value of `build.target` should be in nightly --- src/cargo/util/config/mod.rs | 4 ++-- tests/testsuite/multitarget.rs | 21 +++++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/cargo/util/config/mod.rs b/src/cargo/util/config/mod.rs index 1886be972eb..15414ece9af 100644 --- a/src/cargo/util/config/mod.rs +++ b/src/cargo/util/config/mod.rs @@ -2224,8 +2224,8 @@ impl BuildTargetConfig { let values = match &self.inner.val { BuildTargetConfigInner::One(s) => vec![map(s)], BuildTargetConfigInner::Many(v) => { - if v.len() > 1 && !config.cli_unstable().multitarget { - bail!("specifying multiple `target` in `build.target` config value requires `-Zmultitarget`") + if !config.cli_unstable().multitarget { + bail!("specifying an array in `build.target` config value requires `-Zmultitarget`") } else { v.iter().map(map).collect() } diff --git a/tests/testsuite/multitarget.rs b/tests/testsuite/multitarget.rs index cecfb073fb1..d4aced728f5 100644 --- a/tests/testsuite/multitarget.rs +++ b/tests/testsuite/multitarget.rs @@ -16,7 +16,7 @@ fn double_target_rejected() { } #[cargo_test] -fn double_target_rejected_with_config() { +fn array_of_target_rejected_with_config() { let p = project() .file("Cargo.toml", &basic_manifest("foo", "1.0.0")) .file("src/main.rs", "fn main() {}") @@ -30,7 +30,24 @@ fn double_target_rejected_with_config() { .build(); p.cargo("build") - .with_stderr("[ERROR] specifying multiple `target` in `build.target` config value requires `-Zmultitarget`") + .with_stderr( + "[ERROR] specifying an array in `build.target` config value requires `-Zmultitarget`", + ) + .with_status(101) + .run(); + + p.change_file( + ".cargo/config.toml", + r#" + [build] + target = ["a"] + "#, + ); + + p.cargo("build") + .with_stderr( + "[ERROR] specifying an array in `build.target` config value requires `-Zmultitarget`", + ) .with_status(101) .run(); }