| //@aux-build:proc_macro_derive.rs | |
| #![allow(unused, clippy::duplicated_attributes)] | |
| #![warn(clippy::useless_attribute)] | |
| #![warn(unreachable_pub)] | |
| #![feature(rustc_private)] | |
| #[allow(dead_code)] | |
| //~^ useless_attribute | |
| #[cfg_attr(clippy, allow(dead_code))] | |
| //~^ useless_attribute | |
| #[rustfmt::skip] | |
| #[allow(unused_imports)] | |
| #[allow(unused_extern_crates)] | |
| #[macro_use] | |
| extern crate regex as regex_crate; | |
| #[macro_use] | |
| extern crate proc_macro_derive; | |
| fn test_indented_attr() { | |
| #[allow(clippy::almost_swapped)] | |
| //~^ useless_attribute | |
| use std::collections::HashSet; | |
| let _ = HashSet::<u32>::default(); | |
| } | |
| // 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 | |
| mod foo { | |
| #[deprecated] | |
| pub struct Bar; | |
| } | |
| #[allow(deprecated)] | |
| pub use foo::Bar; | |
| // don't lint on exported_private_dependencies for `use` items | |
| #[allow(exported_private_dependencies)] | |
| use {}; | |
| // 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; | |
| } | |
| // https://github.com/rust-lang/rust-clippy/issues/7511 | |
| pub mod split { | |
| #[allow(clippy::module_name_repetitions)] | |
| pub use regex::SplitN; | |
| } | |
| // https://github.com/rust-lang/rust-clippy/issues/8768 | |
| #[allow(clippy::single_component_path_imports)] | |
| use regex; | |
| mod module { | |
| pub(crate) struct Struct; | |
| } | |
| #[rustfmt::skip] | |
| #[allow(unused_import_braces)] | |
| #[allow(unused_braces)] | |
| use module::{Struct}; | |
| fn main() {} | |
| // Regression test for https://github.com/rust-lang/rust-clippy/issues/4467 | |
| #[allow(dead_code)] | |
| use std::collections as puppy_doggy; | |
| // Regression test for https://github.com/rust-lang/rust-clippy/issues/11595 | |
| pub mod hidden_glob_reexports { | |
| #![allow(unreachable_pub)] | |
| mod my_prelude { | |
| pub struct MyCoolTypeInternal; | |
| pub use MyCoolTypeInternal as MyCoolType; | |
| } | |
| mod my_uncool_type { | |
| pub(crate) struct MyUncoolType; | |
| } | |
| // This exports `MyCoolType`. | |
| pub use my_prelude::*; | |
| // This hides `my_prelude::MyCoolType`. | |
| #[allow(hidden_glob_reexports)] | |
| use my_uncool_type::MyUncoolType as MyCoolType; | |
| } | |
| // Regression test for https://github.com/rust-lang/rust-clippy/issues/10878 | |
| pub mod ambiguous_glob_exports { | |
| #![allow(unreachable_pub)] | |
| mod my_prelude { | |
| pub struct MyType; | |
| } | |
| mod my_type { | |
| pub struct MyType; | |
| } | |
| #[allow(ambiguous_glob_reexports)] | |
| pub use my_prelude::*; | |
| pub use my_type::*; | |
| } | |
| // Regression test for https://github.com/rust-lang/rust-clippy/issues/13764 | |
| pub mod unknown_namespace { | |
| pub mod some_module { | |
| pub struct SomeType; | |
| } | |
| #[allow(rustc::non_glob_import_of_type_ir_inherent)] | |
| use some_module::SomeType; | |
| } | |
| // Regression test for https://github.com/rust-lang/rust-clippy/issues/15316 | |
| pub mod redundant_imports_issue { | |
| macro_rules! empty { | |
| () => {}; | |
| } | |
| #[expect(unused_imports)] | |
| pub(crate) use empty; | |
| empty!(); | |
| } | |
| pub mod issue15636 { | |
| pub mod f { | |
| #[deprecated(since = "TBD")] | |
| pub mod deprec {} | |
| } | |
| #[allow(deprecated_in_future)] | |
| pub use f::deprec; | |
| } |