about summary refs log tree commit diff
path: root/src/test/ui/lint/unused/unused-attr-macro-rules.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/lint/unused/unused-attr-macro-rules.rs')
-rw-r--r--src/test/ui/lint/unused/unused-attr-macro-rules.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/lint/unused/unused-attr-macro-rules.rs b/src/test/ui/lint/unused/unused-attr-macro-rules.rs
new file mode 100644
index 00000000000..396137a11d0
--- /dev/null
+++ b/src/test/ui/lint/unused/unused-attr-macro-rules.rs
@@ -0,0 +1,34 @@
+#![deny(unused_attributes)]
+// Unused attributes on macro_rules requires special handling since the
+// macro_rules definition does not survive towards HIR.
+
+// A sample of various built-in attributes.
+#[macro_export]
+#[macro_use] //~ ERROR unused attribute
+#[path="foo"] //~ ERROR unused attribute
+#[recursion_limit="1"] //~ ERROR unused attribute
+                       //~| ERROR crate-level attribute should be an inner attribute
+macro_rules! foo {
+    () => {};
+}
+
+// The following should not warn about unused attributes.
+#[allow(unused)]
+macro_rules! foo2 {
+    () => {};
+}
+
+#[cfg(FALSE)]
+macro_rules! foo {
+    () => {};
+}
+
+/// Some docs
+#[deprecated]
+#[doc = "more docs"]
+#[macro_export]
+macro_rules! bar {
+    () => {};
+}
+
+fn main() {}