]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/useless_attribute.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / useless_attribute.rs
index 80d4ebcedba71b7344dd84083aadf942f44cea25..dd84b1b2c1c381570d276a43aa052d45b7cb01db 100644 (file)
@@ -1,9 +1,11 @@
-#![feature(tool_lints)]
+// aux-build:proc_macro_derive.rs
 
 #![warn(clippy::useless_attribute)]
+#![warn(unreachable_pub)]
 
 #[allow(dead_code)]
 #[cfg_attr(feature = "cargo-clippy", allow(dead_code))]
+#[rustfmt::skip]
 #[cfg_attr(feature = "cargo-clippy",
            allow(dead_code))]
 #[allow(unused_imports)]
 #[macro_use]
 extern crate clippy_lints;
 
+#[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; }
+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 main() {}