50 lines
1.1 KiB
Rust
50 lines
1.1 KiB
Rust
#![deny(warnings)]
|
|
|
|
// Ensure that unknown lints inside cfg-attr's are linted for
|
|
|
|
#![cfg_attr(all(), allow(nonex_lint_top_level))]
|
|
//~^ ERROR unknown lint
|
|
#![cfg_attr(all(), allow(bare_trait_object))]
|
|
//~^ ERROR has been renamed
|
|
|
|
#[cfg_attr(all(), allow(nonex_lint_mod))]
|
|
//~^ ERROR unknown lint
|
|
mod baz {
|
|
#![cfg_attr(all(), allow(nonex_lint_mod_inner))]
|
|
//~^ ERROR unknown lint
|
|
}
|
|
|
|
#[cfg_attr(all(), allow(nonex_lint_fn))]
|
|
//~^ ERROR unknown lint
|
|
pub fn main() {}
|
|
|
|
macro_rules! bar {
|
|
($($t:tt)*) => {
|
|
$($t)*
|
|
};
|
|
}
|
|
|
|
bar!(
|
|
#[cfg_attr(all(), allow(nonex_lint_in_macro))]
|
|
//~^ ERROR unknown lint
|
|
pub fn _bar() {}
|
|
);
|
|
|
|
// No warning for non-applying cfg
|
|
#[cfg_attr(any(), allow(nonex_lint_fn))]
|
|
pub fn _foo() {}
|
|
|
|
// Allowing unknown lints works if inside cfg_attr
|
|
#[cfg_attr(all(), allow(unknown_lints))]
|
|
mod bar_allowed {
|
|
#[allow(nonex_lint_fn)]
|
|
fn _foo() {}
|
|
}
|
|
|
|
// ... but not if the cfg_attr doesn't evaluate
|
|
#[cfg_attr(any(), allow(unknown_lints))]
|
|
mod bar_not_allowed {
|
|
#[allow(nonex_lint_fn)]
|
|
//~^ ERROR unknown lint
|
|
fn _foo() {}
|
|
}
|