diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs index 0a861d62c37..1d69ed59859 100644 --- a/src/tools/compiletest/src/runtest.rs +++ b/src/tools/compiletest/src/runtest.rs @@ -1028,12 +1028,31 @@ fn compare_source(&self, expected: &str, actual: &str) { } fn set_revision_flags(&self, cmd: &mut Command) { + // Normalize revisions to be lowercase and replace `-`s with `_`s. + // Otherwise the `--cfg` flag is not valid. + let normalize_revision = |revision: &str| revision.to_lowercase().replace("-", "_"); + if let Some(revision) = self.revision { - // Normalize revisions to be lowercase and replace `-`s with `_`s. - // Otherwise the `--cfg` flag is not valid. - let normalized_revision = revision.to_lowercase().replace("-", "_"); + let normalized_revision = normalize_revision(revision); cmd.args(&["--cfg", &normalized_revision]); } + + if !self.props.no_auto_check_cfg { + let mut check_cfg = String::with_capacity(25); + + // Generate `cfg(FALSE, REV1, ..., REVN)` (for all possible revisions) + // + // For compatibility reason we consider the `FALSE` cfg to be expected + // since it is extensively used in the testsuite. + check_cfg.push_str("cfg(FALSE"); + for revision in &self.props.revisions { + check_cfg.push_str(","); + check_cfg.push_str(&normalize_revision(&revision)); + } + check_cfg.push_str(")"); + + cmd.args(&["--check-cfg", &check_cfg]); + } } fn typecheck_source(&self, src: String) -> ProcRes { diff --git a/tests/rustdoc-ui/argfile/commandline-argfile.rs b/tests/rustdoc-ui/argfile/commandline-argfile.rs index b0b314f53ce..d5a1cd0a5ed 100644 --- a/tests/rustdoc-ui/argfile/commandline-argfile.rs +++ b/tests/rustdoc-ui/argfile/commandline-argfile.rs @@ -1,7 +1,8 @@ // Check to see if we can get parameters from an @argsfile file // //@ check-pass -//@ compile-flags: --cfg cmdline_set @{{src-base}}/argfile/commandline-argfile.args +//@ compile-flags: --cfg cmdline_set --check-cfg=cfg(cmdline_set,unbroken) +//@ compile-flags: @{{src-base}}/argfile/commandline-argfile.args #[cfg(not(cmdline_set))] compile_error!("cmdline_set not set"); @@ -9,5 +10,4 @@ #[cfg(not(unbroken))] compile_error!("unbroken not set"); -fn main() { -} +fn main() {} diff --git a/tests/ui/argfile/commandline-argfile.rs b/tests/ui/argfile/commandline-argfile.rs index 387a8d033b3..b7f1e8ed6aa 100644 --- a/tests/ui/argfile/commandline-argfile.rs +++ b/tests/ui/argfile/commandline-argfile.rs @@ -1,7 +1,8 @@ // Check to see if we can get parameters from an @argsfile file // //@ build-pass -//@ compile-flags: --cfg cmdline_set @{{src-base}}/argfile/commandline-argfile.args +//@ compile-flags: --cfg cmdline_set --check-cfg=cfg(cmdline_set,unbroken) +//@ compile-flags: @{{src-base}}/argfile/commandline-argfile.args #[cfg(not(cmdline_set))] compile_error!("cmdline_set not set"); @@ -9,5 +10,4 @@ #[cfg(not(unbroken))] compile_error!("unbroken not set"); -fn main() { -} +fn main() {} diff --git a/tests/ui/cfg/cfg-in-crate-1.rs b/tests/ui/cfg/cfg-in-crate-1.rs index 07e1c3727f9..4339ce00477 100644 --- a/tests/ui/cfg/cfg-in-crate-1.rs +++ b/tests/ui/cfg/cfg-in-crate-1.rs @@ -1,5 +1,6 @@ //@ run-pass -//@ compile-flags: --cfg bar -D warnings +//@ compile-flags: --cfg bar --check-cfg=cfg(bar) -D warnings + #![cfg(bar)] fn main() {} diff --git a/tests/ui/cfg/cfg-macros-foo.rs b/tests/ui/cfg/cfg-macros-foo.rs index 7cdf2df5c8f..4f6ec583db2 100644 --- a/tests/ui/cfg/cfg-macros-foo.rs +++ b/tests/ui/cfg/cfg-macros-foo.rs @@ -1,5 +1,5 @@ //@ run-pass -//@ compile-flags: --cfg foo +//@ compile-flags: --cfg foo --check-cfg=cfg(foo) // check that cfg correctly chooses between the macro impls (see also // cfg-macros-notfoo.rs) diff --git a/tests/ui/cfg/cfg-path-error.rs b/tests/ui/cfg/cfg-path-error.rs index 1e52922d079..9db1f190bdc 100644 --- a/tests/ui/cfg/cfg-path-error.rs +++ b/tests/ui/cfg/cfg-path-error.rs @@ -1,5 +1,7 @@ //@ check-fail +#![allow(unexpected_cfgs)] // invalid cfgs + #[cfg(any(foo, foo::bar))] //~^ERROR `cfg` predicate key must be an identifier fn foo1() {} diff --git a/tests/ui/cfg/cfg-path-error.stderr b/tests/ui/cfg/cfg-path-error.stderr index 84b44b2b0c2..4f68fa32a9a 100644 --- a/tests/ui/cfg/cfg-path-error.stderr +++ b/tests/ui/cfg/cfg-path-error.stderr @@ -1,23 +1,23 @@ error: `cfg` predicate key must be an identifier - --> $DIR/cfg-path-error.rs:3:16 + --> $DIR/cfg-path-error.rs:5:16 | LL | #[cfg(any(foo, foo::bar))] | ^^^^^^^^ error: `cfg` predicate key must be an identifier - --> $DIR/cfg-path-error.rs:7:11 + --> $DIR/cfg-path-error.rs:9:11 | LL | #[cfg(any(foo::bar, foo))] | ^^^^^^^^ error: `cfg` predicate key must be an identifier - --> $DIR/cfg-path-error.rs:11:16 + --> $DIR/cfg-path-error.rs:13:16 | LL | #[cfg(all(foo, foo::bar))] | ^^^^^^^^ error: `cfg` predicate key must be an identifier - --> $DIR/cfg-path-error.rs:15:11 + --> $DIR/cfg-path-error.rs:17:11 | LL | #[cfg(all(foo::bar, foo))] | ^^^^^^^^ diff --git a/tests/ui/cfg/cfg_attr.rs b/tests/ui/cfg/cfg_attr.rs index 4bd024ef5f4..ba4adafd3a5 100644 --- a/tests/ui/cfg/cfg_attr.rs +++ b/tests/ui/cfg/cfg_attr.rs @@ -1,6 +1,8 @@ //@ run-pass //@ compile-flags:--cfg set1 --cfg set2 -#![allow(dead_code)] + +#![allow(dead_code, unexpected_cfgs)] + use std::fmt::Debug; struct NotDebugable; diff --git a/tests/ui/cfg/cfgs-on-items.rs b/tests/ui/cfg/cfgs-on-items.rs index b3b38cfadb5..8992a8fca9c 100644 --- a/tests/ui/cfg/cfgs-on-items.rs +++ b/tests/ui/cfg/cfgs-on-items.rs @@ -1,8 +1,7 @@ //@ run-pass -//@ compile-flags: --cfg fooA --cfg fooB +//@ compile-flags: --cfg fooA --cfg fooB --check-cfg=cfg(fooA,fooB,fooC,bar) // fooA AND !bar - #[cfg(all(fooA, not(bar)))] fn foo1() -> isize { 1 } diff --git a/tests/ui/cfg/diagnostics-not-a-def.rs b/tests/ui/cfg/diagnostics-not-a-def.rs index 72939471226..1912cf9f616 100644 --- a/tests/ui/cfg/diagnostics-not-a-def.rs +++ b/tests/ui/cfg/diagnostics-not-a-def.rs @@ -1,4 +1,7 @@ +#![feature(lint_reasons)] + pub mod inner { + #[expect(unexpected_cfgs)] pub fn i_am_here() { #[cfg(feature = "another one that doesn't exist")] loop {} diff --git a/tests/ui/cfg/diagnostics-not-a-def.stderr b/tests/ui/cfg/diagnostics-not-a-def.stderr index 6941f850e5f..89bbf574871 100644 --- a/tests/ui/cfg/diagnostics-not-a-def.stderr +++ b/tests/ui/cfg/diagnostics-not-a-def.stderr @@ -1,5 +1,5 @@ error[E0425]: cannot find function `i_am_not` in module `inner` - --> $DIR/diagnostics-not-a-def.rs:11:12 + --> $DIR/diagnostics-not-a-def.rs:14:12 | LL | inner::i_am_not(); | ^^^^^^^^ not found in `inner` diff --git a/tests/ui/cfg/diagnostics-same-crate.rs b/tests/ui/cfg/diagnostics-same-crate.rs index d9ff8d61e92..b2a0fb58dd6 100644 --- a/tests/ui/cfg/diagnostics-same-crate.rs +++ b/tests/ui/cfg/diagnostics-same-crate.rs @@ -1,3 +1,5 @@ +#![allow(unexpected_cfgs)] // since we want to recognize them as unexpected + pub mod inner { #[cfg(FALSE)] pub fn uwu() {} diff --git a/tests/ui/cfg/diagnostics-same-crate.stderr b/tests/ui/cfg/diagnostics-same-crate.stderr index 83a44587238..86421736b8c 100644 --- a/tests/ui/cfg/diagnostics-same-crate.stderr +++ b/tests/ui/cfg/diagnostics-same-crate.stderr @@ -1,72 +1,72 @@ error[E0432]: unresolved import `super::inner::doesnt_exist` - --> $DIR/diagnostics-same-crate.rs:28:9 + --> $DIR/diagnostics-same-crate.rs:30:9 | LL | use super::inner::doesnt_exist; | ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `doesnt_exist` in `inner` | note: found an item that was configured out - --> $DIR/diagnostics-same-crate.rs:7:13 + --> $DIR/diagnostics-same-crate.rs:9:13 | LL | pub mod doesnt_exist { | ^^^^^^^^^^^^ error[E0432]: unresolved import `super::inner::doesnt_exist` - --> $DIR/diagnostics-same-crate.rs:31:23 + --> $DIR/diagnostics-same-crate.rs:33:23 | LL | use super::inner::doesnt_exist::hi; | ^^^^^^^^^^^^ could not find `doesnt_exist` in `inner` | note: found an item that was configured out - --> $DIR/diagnostics-same-crate.rs:7:13 + --> $DIR/diagnostics-same-crate.rs:9:13 | LL | pub mod doesnt_exist { | ^^^^^^^^^^^^ error[E0433]: failed to resolve: could not find `doesnt_exist` in `inner` - --> $DIR/diagnostics-same-crate.rs:50:12 + --> $DIR/diagnostics-same-crate.rs:52:12 | LL | inner::doesnt_exist::hello(); | ^^^^^^^^^^^^ could not find `doesnt_exist` in `inner` | note: found an item that was configured out - --> $DIR/diagnostics-same-crate.rs:7:13 + --> $DIR/diagnostics-same-crate.rs:9:13 | LL | pub mod doesnt_exist { | ^^^^^^^^^^^^ error[E0425]: cannot find function `uwu` in module `inner` - --> $DIR/diagnostics-same-crate.rs:45:12 + --> $DIR/diagnostics-same-crate.rs:47:12 | LL | inner::uwu(); | ^^^ not found in `inner` | note: found an item that was configured out - --> $DIR/diagnostics-same-crate.rs:3:12 + --> $DIR/diagnostics-same-crate.rs:5:12 | LL | pub fn uwu() {} | ^^^ error[E0425]: cannot find function `meow` in module `inner::right` - --> $DIR/diagnostics-same-crate.rs:54:19 + --> $DIR/diagnostics-same-crate.rs:56:19 | LL | inner::right::meow(); | ^^^^ not found in `inner::right` | note: found an item that was configured out - --> $DIR/diagnostics-same-crate.rs:22:16 + --> $DIR/diagnostics-same-crate.rs:24:16 | LL | pub fn meow() {} | ^^^^ = note: the item is gated behind the `what-a-cool-feature` feature error[E0425]: cannot find function `uwu` in this scope - --> $DIR/diagnostics-same-crate.rs:41:5 + --> $DIR/diagnostics-same-crate.rs:43:5 | LL | uwu(); | ^^^ not found in this scope error[E0425]: cannot find function `vanished` in this scope - --> $DIR/diagnostics-same-crate.rs:61:5 + --> $DIR/diagnostics-same-crate.rs:63:5 | LL | vanished(); | ^^^^^^^^ not found in this scope diff --git a/tests/ui/cfg/expanded-cfg.rs b/tests/ui/cfg/expanded-cfg.rs index 75860146e74..ecafa40cadc 100644 --- a/tests/ui/cfg/expanded-cfg.rs +++ b/tests/ui/cfg/expanded-cfg.rs @@ -1,5 +1,7 @@ //@ check-pass +#![allow(unexpected_cfgs)] // since we different cfgs + macro_rules! mac { {} => { #[cfg(attr)] diff --git a/tests/ui/cfg/future-compat-crate-attributes-using-cfg_attr.rs b/tests/ui/cfg/future-compat-crate-attributes-using-cfg_attr.rs index 96e326e02ad..3ced3a630e3 100644 --- a/tests/ui/cfg/future-compat-crate-attributes-using-cfg_attr.rs +++ b/tests/ui/cfg/future-compat-crate-attributes-using-cfg_attr.rs @@ -1,5 +1,5 @@ //@ check-fail -//@ compile-flags:--cfg foo +//@ compile-flags:--cfg foo --check-cfg=cfg(foo) #![cfg_attr(foo, crate_type="bin")] //~^ERROR `crate_type` within diff --git a/tests/ui/conditional-compilation/cfg-attr-cfg-2.rs b/tests/ui/conditional-compilation/cfg-attr-cfg-2.rs index ae0afc7dfa7..c801bbccedd 100644 --- a/tests/ui/conditional-compilation/cfg-attr-cfg-2.rs +++ b/tests/ui/conditional-compilation/cfg-attr-cfg-2.rs @@ -1,6 +1,5 @@ -// //@ error-pattern: `main` function not found -//@ compile-flags: --cfg foo +//@ compile-flags: --cfg foo --check-cfg=cfg(foo,bar) // main is conditionally compiled, but the conditional compilation // is conditional too! diff --git a/tests/ui/conditional-compilation/cfg-attr-cfg-2.stderr b/tests/ui/conditional-compilation/cfg-attr-cfg-2.stderr index 5f7fea0965f..64595241dc7 100644 --- a/tests/ui/conditional-compilation/cfg-attr-cfg-2.stderr +++ b/tests/ui/conditional-compilation/cfg-attr-cfg-2.stderr @@ -1,5 +1,5 @@ error[E0601]: `main` function not found in crate `cfg_attr_cfg_2` - --> $DIR/cfg-attr-cfg-2.rs:9:14 + --> $DIR/cfg-attr-cfg-2.rs:8:14 | LL | fn main() { } | ^ consider adding a `main` function to `$DIR/cfg-attr-cfg-2.rs` diff --git a/tests/ui/conditional-compilation/cfg-attr-crate-2.rs b/tests/ui/conditional-compilation/cfg-attr-crate-2.rs index 710dbd8e818..4b7d1c45234 100644 --- a/tests/ui/conditional-compilation/cfg-attr-crate-2.rs +++ b/tests/ui/conditional-compilation/cfg-attr-crate-2.rs @@ -1,6 +1,6 @@ // https://github.com/rust-lang/rust/issues/21833#issuecomment-72353044 -//@ compile-flags: --cfg broken +//@ compile-flags: --cfg broken --check-cfg=cfg(broken) #![crate_type = "lib"] #![cfg_attr(broken, no_core)] //~ ERROR the `#[no_core]` attribute is an experimental feature diff --git a/tests/ui/conditional-compilation/cfg-attr-multi-invalid-1.rs b/tests/ui/conditional-compilation/cfg-attr-multi-invalid-1.rs index de2c7557a6d..d881634abc3 100644 --- a/tests/ui/conditional-compilation/cfg-attr-multi-invalid-1.rs +++ b/tests/ui/conditional-compilation/cfg-attr-multi-invalid-1.rs @@ -1,4 +1,4 @@ -//@ compile-flags: --cfg broken +//@ compile-flags: --cfg broken --check-cfg=cfg(broken) #![crate_type = "lib"] #![cfg_attr(broken, no_core, no_std)] diff --git a/tests/ui/conditional-compilation/cfg-attr-multi-invalid-2.rs b/tests/ui/conditional-compilation/cfg-attr-multi-invalid-2.rs index e222b79c9d8..6cac52983b5 100644 --- a/tests/ui/conditional-compilation/cfg-attr-multi-invalid-2.rs +++ b/tests/ui/conditional-compilation/cfg-attr-multi-invalid-2.rs @@ -1,4 +1,4 @@ -//@ compile-flags: --cfg broken +//@ compile-flags: --cfg broken --check-cfg=cfg(broken) #![crate_type = "lib"] #![cfg_attr(broken, no_std, no_core)] diff --git a/tests/ui/conditional-compilation/cfg-generic-params.rs b/tests/ui/conditional-compilation/cfg-generic-params.rs index 2a83be21498..4bb8f8ae94f 100644 --- a/tests/ui/conditional-compilation/cfg-generic-params.rs +++ b/tests/ui/conditional-compilation/cfg-generic-params.rs @@ -1,4 +1,4 @@ -//@ compile-flags:--cfg yes +//@ compile-flags:--cfg yes --check-cfg=cfg(yes,no) fn f_lt<#[cfg(yes)] 'a: 'a, #[cfg(FALSE)] T>() {} fn f_ty<#[cfg(FALSE)] 'a: 'a, #[cfg(yes)] T>() {} diff --git a/tests/ui/conditional-compilation/test-cfg.rs b/tests/ui/conditional-compilation/test-cfg.rs index 7c6c692072d..adbbc309be4 100644 --- a/tests/ui/conditional-compilation/test-cfg.rs +++ b/tests/ui/conditional-compilation/test-cfg.rs @@ -1,4 +1,4 @@ -//@ compile-flags: --cfg foo +//@ compile-flags: --cfg foo --check-cfg=cfg(foo,bar) #[cfg(all(foo, bar))] // foo AND bar fn foo() {} diff --git a/tests/ui/imports/extern-prelude-extern-crate-cfg.rs b/tests/ui/imports/extern-prelude-extern-crate-cfg.rs index 346d63dabe7..49b90e43915 100644 --- a/tests/ui/imports/extern-prelude-extern-crate-cfg.rs +++ b/tests/ui/imports/extern-prelude-extern-crate-cfg.rs @@ -1,5 +1,5 @@ //@ build-pass (FIXME(62277): could be check-pass?) -//@ compile-flags:--cfg my_feature +//@ compile-flags:--cfg my_feature --check-cfg=cfg(my_feature) #![no_std] diff --git a/tests/ui/macros/macro-comma-support-rpass.rs b/tests/ui/macros/macro-comma-support-rpass.rs index 724bd5af2dc..5a4bac70b1c 100644 --- a/tests/ui/macros/macro-comma-support-rpass.rs +++ b/tests/ui/macros/macro-comma-support-rpass.rs @@ -51,6 +51,7 @@ fn assert_ne() { } #[test] +#[allow(unexpected_cfgs)] fn cfg() { let _ = cfg!(pants); let _ = cfg!(pants,); diff --git a/tests/ui/macros/macro-meta-items.rs b/tests/ui/macros/macro-meta-items.rs index d44a3184bc6..35ef10fef5a 100644 --- a/tests/ui/macros/macro-meta-items.rs +++ b/tests/ui/macros/macro-meta-items.rs @@ -1,6 +1,7 @@ //@ run-pass +//@ compile-flags: --cfg foo --check-cfg=cfg(foo) + #![allow(dead_code)] -//@ compile-flags: --cfg foo macro_rules! compiles_fine { ($at:meta) => { diff --git a/tests/ui/macros/macro-with-attrs1.rs b/tests/ui/macros/macro-with-attrs1.rs index cfd5691fe94..a3030e744db 100644 --- a/tests/ui/macros/macro-with-attrs1.rs +++ b/tests/ui/macros/macro-with-attrs1.rs @@ -1,5 +1,5 @@ //@ run-pass -//@ compile-flags: --cfg foo +//@ compile-flags: --cfg foo --check-cfg=cfg(foo) #[cfg(foo)] diff --git a/tests/ui/macros/syntax-extension-cfg.rs b/tests/ui/macros/syntax-extension-cfg.rs index b819e8c33d8..6e7f3e2ed5d 100644 --- a/tests/ui/macros/syntax-extension-cfg.rs +++ b/tests/ui/macros/syntax-extension-cfg.rs @@ -1,6 +1,6 @@ //@ run-pass //@ compile-flags: --cfg foo --cfg qux="foo" - +//@ compile-flags: --check-cfg=cfg(foo) --check-cfg=cfg(qux,values("foo")) pub fn main() { // check diff --git a/tests/ui/methods/method-lookup-order.rs b/tests/ui/methods/method-lookup-order.rs index 08ad6483d08..f794e5a7241 100644 --- a/tests/ui/methods/method-lookup-order.rs +++ b/tests/ui/methods/method-lookup-order.rs @@ -18,6 +18,9 @@ //@ revisions: b00001 b00010 b00011 b00100 b00101 b00110 b00111 b01000 b01001 b01100 b01101 b10000 b10001 b10010 b10011 b10101 b10111 b11000 b11001 b11101 +//@ compile-flags: --check-cfg=cfg(inherent_mut,bar_for_foo,mutbar_for_foo) +//@ compile-flags: --check-cfg=cfg(valbar_for_et_foo,valbar_for_etmut_foo) + //@[b00001]compile-flags: --cfg inherent_mut //@[b00010]compile-flags: --cfg bar_for_foo //@[b00011]compile-flags: --cfg inherent_mut --cfg bar_for_foo diff --git a/tests/ui/parser/attribute/attr-unquoted-ident.fixed b/tests/ui/parser/attribute/attr-unquoted-ident.fixed index 636508b5615..bc861ef69fb 100644 --- a/tests/ui/parser/attribute/attr-unquoted-ident.fixed +++ b/tests/ui/parser/attribute/attr-unquoted-ident.fixed @@ -1,6 +1,8 @@ //@ compile-flags: -Zdeduplicate-diagnostics=yes //@ run-rustfix +#![allow(unexpected_cfgs)] + fn main() { #[cfg(key="foo")] //~^ ERROR expected unsuffixed literal, found `foo` diff --git a/tests/ui/parser/attribute/attr-unquoted-ident.rs b/tests/ui/parser/attribute/attr-unquoted-ident.rs index 9b9a9f78403..8bdb8605ebb 100644 --- a/tests/ui/parser/attribute/attr-unquoted-ident.rs +++ b/tests/ui/parser/attribute/attr-unquoted-ident.rs @@ -1,6 +1,8 @@ //@ compile-flags: -Zdeduplicate-diagnostics=yes //@ run-rustfix +#![allow(unexpected_cfgs)] + fn main() { #[cfg(key=foo)] //~^ ERROR expected unsuffixed literal, found `foo` diff --git a/tests/ui/parser/attribute/attr-unquoted-ident.stderr b/tests/ui/parser/attribute/attr-unquoted-ident.stderr index bc028f39be6..99484a51110 100644 --- a/tests/ui/parser/attribute/attr-unquoted-ident.stderr +++ b/tests/ui/parser/attribute/attr-unquoted-ident.stderr @@ -1,5 +1,5 @@ error: expected unsuffixed literal, found `foo` - --> $DIR/attr-unquoted-ident.rs:5:15 + --> $DIR/attr-unquoted-ident.rs:7:15 | LL | #[cfg(key=foo)] | ^^^ @@ -10,7 +10,7 @@ LL | #[cfg(key="foo")] | + + error: expected unsuffixed literal, found `foo` - --> $DIR/attr-unquoted-ident.rs:11:15 + --> $DIR/attr-unquoted-ident.rs:13:15 | LL | #[cfg(key=foo bar baz)] | ^^^ diff --git a/tests/ui/regions/regions-refcell.rs b/tests/ui/regions/regions-refcell.rs index 29eb5161a6c..c27ffe6b6a8 100644 --- a/tests/ui/regions/regions-refcell.rs +++ b/tests/ui/regions/regions-refcell.rs @@ -3,6 +3,7 @@ // attempting to bootstrap librustc with new destructor lifetime // semantics. +#![allow(unexpected_cfgs)] // for the cfg-as-descriptions use std::collections::HashMap; use std::cell::RefCell; diff --git a/tests/ui/resolve/suggest-import-without-clobbering-attrs.fixed b/tests/ui/resolve/suggest-import-without-clobbering-attrs.fixed index d05c0f05806..607c9af4927 100644 --- a/tests/ui/resolve/suggest-import-without-clobbering-attrs.fixed +++ b/tests/ui/resolve/suggest-import-without-clobbering-attrs.fixed @@ -1,8 +1,8 @@ //@ run-rustfix -//@ compile-flags: --cfg=whatever -Aunused +//@ compile-flags: -Aunused use y::z; -#[cfg(whatever)] +#[cfg(all())] use y::Whatever; mod y { diff --git a/tests/ui/resolve/suggest-import-without-clobbering-attrs.rs b/tests/ui/resolve/suggest-import-without-clobbering-attrs.rs index 0be2e558e42..6cc53fb1086 100644 --- a/tests/ui/resolve/suggest-import-without-clobbering-attrs.rs +++ b/tests/ui/resolve/suggest-import-without-clobbering-attrs.rs @@ -1,7 +1,7 @@ //@ run-rustfix -//@ compile-flags: --cfg=whatever -Aunused +//@ compile-flags: -Aunused -#[cfg(whatever)] +#[cfg(all())] use y::Whatever; mod y { diff --git a/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-allowed.rs b/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-allowed.rs index e35f743d96a..4b8d2406784 100644 --- a/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-allowed.rs +++ b/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-allowed.rs @@ -1,5 +1,5 @@ //@ check-pass -//@ compile-flags: --cfg something +//@ compile-flags: --cfg something --check-cfg=cfg(nothing,something) #![deny(unused_mut)] diff --git a/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-cfg.rs b/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-cfg.rs index babeaf67eb2..e7a5d59958b 100644 --- a/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-cfg.rs +++ b/tests/ui/rfcs/rfc-2565-param-attrs/param-attrs-cfg.rs @@ -1,4 +1,4 @@ -//@ compile-flags: --cfg something +//@ compile-flags: --cfg something --check-cfg=cfg(nothing,something) //@ edition:2018 #![feature(async_closure)] diff --git a/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.fixed b/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.fixed index f4506dd929e..878d1dc72cc 100644 --- a/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.fixed +++ b/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.fixed @@ -4,7 +4,7 @@ //@ edition:2018 #![deny(rust_2018_idioms)] -#![allow(dead_code)] +#![allow(dead_code, unexpected_cfgs)] // The suggestion span should include the attribute. diff --git a/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.rs b/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.rs index 4f1cb71dc51..573942bd095 100644 --- a/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.rs +++ b/tests/ui/rust-2018/issue-54400-unused-extern-crate-attr-span.rs @@ -4,7 +4,7 @@ //@ edition:2018 #![deny(rust_2018_idioms)] -#![allow(dead_code)] +#![allow(dead_code, unexpected_cfgs)] // The suggestion span should include the attribute. diff --git a/tests/ui/shell-argfiles/shell-argfiles-via-argfile.rs b/tests/ui/shell-argfiles/shell-argfiles-via-argfile.rs index b907fd3bbc7..2c07542bd75 100644 --- a/tests/ui/shell-argfiles/shell-argfiles-via-argfile.rs +++ b/tests/ui/shell-argfiles/shell-argfiles-via-argfile.rs @@ -1,6 +1,7 @@ // Check to see if we can get parameters from an @argsfile file // //@ build-pass +//@ no-auto-check-cfg //@ compile-flags: @{{src-base}}/shell-argfiles/shell-argfiles-via-argfile.args @shell:{{src-base}}/shell-argfiles/shell-argfiles-via-argfile-shell.args #[cfg(not(shell_args_set))] diff --git a/tests/ui/shell-argfiles/shell-argfiles.args b/tests/ui/shell-argfiles/shell-argfiles.args index e5bb4b807ec..6c596b0bbc0 100644 --- a/tests/ui/shell-argfiles/shell-argfiles.args +++ b/tests/ui/shell-argfiles/shell-argfiles.args @@ -1,3 +1,4 @@ --cfg unquoted_set '--cfg' 'single_quoted_set' "--cfg" "double_quoted_set" +--check-cfg 'cfg(cmdline_set, unquoted_set, single_quoted_set, double_quoted_set)' diff --git a/tests/ui/sse2.rs b/tests/ui/sse2.rs index 60570c566de..9ed6f6fefbd 100644 --- a/tests/ui/sse2.rs +++ b/tests/ui/sse2.rs @@ -2,6 +2,7 @@ #![allow(stable_features)] #![feature(cfg_target_feature)] +#![feature(lint_reasons)] use std::env; @@ -20,6 +21,7 @@ fn main() { "SSE2 was not detected as available on an x86 platform"); } // check a negative case too -- certainly not enabled by default - assert!(cfg!(not(target_feature = "ferris_wheel")), - "🎡 shouldn't be detected as available by default on any platform"); + #[expect(unexpected_cfgs)] + { assert!(cfg!(not(target_feature = "ferris_wheel")), + "🎡 shouldn't be detected as available by default on any platform") }; } diff --git a/tests/ui/target-feature/no-llvm-leaks.rs b/tests/ui/target-feature/no-llvm-leaks.rs index b4a391e184e..73cec0a4496 100644 --- a/tests/ui/target-feature/no-llvm-leaks.rs +++ b/tests/ui/target-feature/no-llvm-leaks.rs @@ -6,7 +6,7 @@ //@ build-pass #![no_core] #![crate_type = "rlib"] -#![feature(intrinsics, rustc_attrs, no_core, lang_items, staged_api)] +#![feature(intrinsics, rustc_attrs, no_core, lang_items, staged_api, lint_reasons)] #![stable(feature = "test", since = "1.0.0")] // Supporting minimal rust core code @@ -43,22 +43,30 @@ macro_rules! assert { #[cfg(target_arch = "aarch64")] fn check_aarch64() { - // This checks that the rustc feature name is used, not the LLVM feature. + // These checks that the rustc feature name is used, not the LLVM feature. + assert!(cfg!(target_feature = "neon")); - assert!(cfg!(not(target_feature = "fp-armv8"))); + // #[expect(unexpected_cfgs)] except that 32-bit arm actually use fp-armv8 + { assert!(cfg!(not(target_feature = "fp-armv8"))); } + assert!(cfg!(target_feature = "fhm")); - assert!(cfg!(not(target_feature = "fp16fml"))); + #[expect(unexpected_cfgs)] + { assert!(cfg!(not(target_feature = "fp16fml"))); } + assert!(cfg!(target_feature = "fp16")); - assert!(cfg!(not(target_feature = "fullfp16"))); + #[expect(unexpected_cfgs)] + { assert!(cfg!(not(target_feature = "fullfp16"))); } } #[cfg(target_arch = "x86_64")] fn check_x86_64() { // This checks that the rustc feature name is used, not the LLVM feature. assert!(cfg!(target_feature = "rdrand")); - assert!(cfg!(not(target_feature = "rdrnd"))); + #[expect(unexpected_cfgs)] + { assert!(cfg!(not(target_feature = "rdrnd"))); } // Likewise: We enable LLVM's crc32 feature with SSE4.2, but Rust says it's just SSE4.2 assert!(cfg!(target_feature = "sse4.2")); - assert!(cfg!(not(target_feature = "crc32"))); + #[expect(unexpected_cfgs)] + { assert!(cfg!(not(target_feature = "crc32"))); } }