Rollup merge of #132577 - Urgau:check-cfg-report-extern-macro, r=petrochenkov
Report the `unexpected_cfgs` lint in external macros This PR marks the `unexpected_cfgs` lint as being reportable in external macros, as it's probably not the intention of the macro author to leave ineffective cfgs in the users code. Fixes #132572 try-job: aarch64-gnu-debug
This commit is contained in:
commit
47200547f3
7 changed files with 46 additions and 8 deletions
|
@ -111,9 +111,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "anstream"
|
||||
version = "0.6.17"
|
||||
version = "0.6.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338"
|
||||
checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"anstyle-parse",
|
||||
|
|
|
@ -3185,6 +3185,7 @@ declare_lint! {
|
|||
pub UNEXPECTED_CFGS,
|
||||
Warn,
|
||||
"detects unexpected names and values in `#[cfg]` conditions",
|
||||
report_in_external_macro
|
||||
}
|
||||
|
||||
declare_lint! {
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit ff9a4445038eae46fd095188740946808581bc0e
|
||||
Subproject commit e5e00aab0a8c8fa35fb7865e88fa82366f615c53
|
|
@ -1,6 +1,6 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
|
@ -521,15 +521,15 @@ checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
|
|||
|
||||
[[package]]
|
||||
name = "xshell"
|
||||
version = "0.2.6"
|
||||
version = "0.2.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6db0ab86eae739efd1b054a8d3d16041914030ac4e01cd1dca0cf252fd8b6437"
|
||||
checksum = "9e7290c623014758632efe00737145b6867b66292c42167f2ec381eb566a373d"
|
||||
dependencies = [
|
||||
"xshell-macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "xshell-macros"
|
||||
version = "0.2.6"
|
||||
version = "0.2.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9d422e8e38ec76e2f06ee439ccc765e9c6a9638b9e7c9f2e8255e4d41e8bd852"
|
||||
checksum = "32ac00cd3f8ec9c1d33fb3e7958a82df6989c42d747bd326c822b1d625283547"
|
||||
|
|
11
tests/ui/check-cfg/auxiliary/cfg_macro.rs
Normal file
11
tests/ui/check-cfg/auxiliary/cfg_macro.rs
Normal file
|
@ -0,0 +1,11 @@
|
|||
// Inspired by https://github.com/rust-lang/cargo/issues/14775
|
||||
|
||||
pub fn my_lib_func() {}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! my_lib_macro {
|
||||
() => {
|
||||
#[cfg(my_lib_cfg)]
|
||||
$crate::my_lib_func()
|
||||
};
|
||||
}
|
12
tests/ui/check-cfg/report-in-external-macros.rs
Normal file
12
tests/ui/check-cfg/report-in-external-macros.rs
Normal file
|
@ -0,0 +1,12 @@
|
|||
// This test checks that we emit the `unexpected_cfgs` lint even in code
|
||||
// coming from an external macro.
|
||||
|
||||
//@ check-pass
|
||||
//@ no-auto-check-cfg
|
||||
//@ aux-crate: cfg_macro=cfg_macro.rs
|
||||
//@ compile-flags: --check-cfg=cfg()
|
||||
|
||||
fn main() {
|
||||
cfg_macro::my_lib_macro!();
|
||||
//~^ WARNING unexpected `cfg` condition name
|
||||
}
|
14
tests/ui/check-cfg/report-in-external-macros.stderr
Normal file
14
tests/ui/check-cfg/report-in-external-macros.stderr
Normal file
|
@ -0,0 +1,14 @@
|
|||
warning: unexpected `cfg` condition name: `my_lib_cfg`
|
||||
--> $DIR/report-in-external-macros.rs:10:5
|
||||
|
|
||||
LL | cfg_macro::my_lib_macro!();
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: expected names are: `clippy`, `debug_assertions`, `doc`, `doctest`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows`
|
||||
= help: to expect this configuration use `--check-cfg=cfg(my_lib_cfg)`
|
||||
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
|
||||
= note: `#[warn(unexpected_cfgs)]` on by default
|
||||
= note: this warning originates in the macro `cfg_macro::my_lib_macro` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
warning: 1 warning emitted
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue