rust-clippy/tests/ui/useless_attribute.rs

76 lines
1.6 KiB
Rust
Raw Normal View History

// run-rustfix
// aux-build:proc_macro_derive.rs
2018-07-28 15:34:52 +00:00
#![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_middle;
#[macro_use]
extern crate proc_macro_derive;
2016-08-19 15:31:14 +00:00
// don't lint on unused_import for `use` items
#[allow(unused_imports)]
use std::collections;
// don't lint on unused for `use` items
#[allow(unused)]
use std::option;
// don't lint on deprecated for `use` items
2018-12-09 22:26:16 +00:00
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;
}
// don't lint on clippy::wildcard_imports for `use` items
#[allow(clippy::wildcard_imports)]
pub use std::io::prelude::*;
// don't lint on clippy::enum_glob_use for `use` items
#[allow(clippy::enum_glob_use)]
pub use std::cmp::Ordering::*;
// don't lint on clippy::redundant_pub_crate
mod c {
#[allow(clippy::redundant_pub_crate)]
pub(crate) struct S;
}
fn test_indented_attr() {
#[allow(clippy::almost_swapped)]
use std::collections::HashSet;
let _ = HashSet::<u32>::default();
}
fn main() {
test_indented_attr();
}