43 lines
1.1 KiB
Rust
43 lines
1.1 KiB
Rust
// check-pass
|
|
|
|
#![feature(lint_reasons)]
|
|
|
|
#![warn(unused_variables)]
|
|
|
|
macro_rules! trigger_unused_variables_macro {
|
|
() => {
|
|
let x = 0;
|
|
//~^ WARNING unused variable: `x` [unused_variables]
|
|
//~| WARNING unused variable: `x` [unused_variables]
|
|
};
|
|
}
|
|
|
|
pub fn check_macro() {
|
|
// This should trigger the `unused_variables` from inside the macro
|
|
trigger_unused_variables_macro!();
|
|
}
|
|
|
|
// This should be fulfilled by the macro
|
|
#[expect(unused_variables)]
|
|
pub fn check_expect_on_item() {
|
|
trigger_unused_variables_macro!();
|
|
}
|
|
|
|
pub fn check_expect_on_macro() {
|
|
// This should be fulfilled by the macro
|
|
#[expect(unused_variables)]
|
|
trigger_unused_variables_macro!();
|
|
|
|
// FIXME: Lint attributes currently don't work directly on macros, and
|
|
// therefore also doesn't work for the new `expect` attribute. This bug
|
|
// is being tracked in rust#87391. The test will until then produce two
|
|
// warnings about the unused variable x.
|
|
//
|
|
// The expectation is still marked as fulfilled. I'm not totally why but
|
|
// my guess is that this will remain working when rust#87391 has been fixed.
|
|
}
|
|
|
|
fn main() {
|
|
|
|
}
|