Add regression test for useless_attribute lint

This commit is contained in:
flip1995 2020-01-08 17:31:27 +01:00
parent 9ea17d42a7
commit 6eba66532c
No known key found for this signature in database
GPG Key ID: 693086869D506637
3 changed files with 77 additions and 4 deletions

View File

@ -0,0 +1,57 @@
// run-rustfix
// aux-build:proc_macro_derive.rs
#![warn(clippy::useless_attribute)]
#![warn(unreachable_pub)]
#![feature(rustc_private)]
#![allow(dead_code)]
#![cfg_attr(feature = "cargo-clippy", allow(dead_code))]
#[rustfmt::skip]
#[allow(unused_imports)]
#[allow(unused_extern_crates)]
#[macro_use]
extern crate rustc;
#[macro_use]
extern crate proc_macro_derive;
// don't lint on unused_import for `use` items
#[allow(unused_imports)]
use std::collections;
// don't lint on deprecated for `use` items
mod foo {
#[deprecated]
pub struct Bar;
}
#[allow(deprecated)]
pub use foo::Bar;
// This should not trigger the lint. There's lint level definitions inside the external derive
// that would trigger the useless_attribute lint.
#[derive(DeriveSomething)]
struct Baz;
// don't lint on unreachable_pub for `use` items
mod a {
mod b {
#[allow(dead_code)]
#[allow(unreachable_pub)]
pub struct C {}
}
#[allow(unreachable_pub)]
pub use self::b::C;
}
fn test_indented_attr() {
#![allow(clippy::almost_swapped)]
use std::collections::HashSet;
let _ = HashSet::<u32>::default();
}
fn main() {
test_indented_attr();
}

View File

@ -1,3 +1,4 @@
// run-rustfix
// aux-build:proc_macro_derive.rs
#![warn(clippy::useless_attribute)]
@ -44,4 +45,13 @@ mod a {
pub use self::b::C;
}
fn main() {}
fn test_indented_attr() {
#[allow(clippy::almost_swapped)]
use std::collections::HashSet;
let _ = HashSet::<u32>::default();
}
fn main() {
test_indented_attr();
}

View File

@ -1,5 +1,5 @@
error: useless lint attribute
--> $DIR/useless_attribute.rs:7:1
--> $DIR/useless_attribute.rs:8:1
|
LL | #[allow(dead_code)]
| ^^^^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![allow(dead_code)]`
@ -7,10 +7,16 @@ LL | #[allow(dead_code)]
= note: `-D clippy::useless-attribute` implied by `-D warnings`
error: useless lint attribute
--> $DIR/useless_attribute.rs:8:1
--> $DIR/useless_attribute.rs:9:1
|
LL | #[cfg_attr(feature = "cargo-clippy", allow(dead_code))]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![cfg_attr(feature = "cargo-clippy", allow(dead_code)`
error: aborting due to 2 previous errors
error: useless lint attribute
--> $DIR/useless_attribute.rs:49:5
|
LL | #[allow(clippy::almost_swapped)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if you just forgot a `!`, use: `#![allow(clippy::almost_swapped)]`
error: aborting due to 3 previous errors