about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEric Huss <eric@huss.org>2021-05-15 16:10:17 -0700
committerEric Huss <eric@huss.org>2021-05-15 16:13:46 -0700
commit5bbc240ffbb0dcf510fd73d71dae529bd345e6b2 (patch)
tree8cefde9b70c34b541f4ef195cab232777e26da88 /src
parent17f30e5451f581d753899d2f628e5be354df33cd (diff)
downloadrust-5bbc240ffbb0dcf510fd73d71dae529bd345e6b2.tar.gz
rust-5bbc240ffbb0dcf510fd73d71dae529bd345e6b2.zip
Fix unused attributes on macro_rules.
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/unused/unused-attr-macro-rules.rs34
-rw-r--r--src/test/ui/unused/unused-attr-macro-rules.stderr32
2 files changed, 66 insertions, 0 deletions
diff --git a/src/test/ui/unused/unused-attr-macro-rules.rs b/src/test/ui/unused/unused-attr-macro-rules.rs
new file mode 100644
index 00000000000..396137a11d0
--- /dev/null
+++ b/src/test/ui/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() {}
diff --git a/src/test/ui/unused/unused-attr-macro-rules.stderr b/src/test/ui/unused/unused-attr-macro-rules.stderr
new file mode 100644
index 00000000000..4606be01ac0
--- /dev/null
+++ b/src/test/ui/unused/unused-attr-macro-rules.stderr
@@ -0,0 +1,32 @@
+error: unused attribute
+  --> $DIR/unused-attr-macro-rules.rs:7:1
+   |
+LL | #[macro_use]
+   | ^^^^^^^^^^^^
+   |
+note: the lint level is defined here
+  --> $DIR/unused-attr-macro-rules.rs:1:9
+   |
+LL | #![deny(unused_attributes)]
+   |         ^^^^^^^^^^^^^^^^^
+
+error: unused attribute
+  --> $DIR/unused-attr-macro-rules.rs:8:1
+   |
+LL | #[path="foo"]
+   | ^^^^^^^^^^^^^
+
+error: unused attribute
+  --> $DIR/unused-attr-macro-rules.rs:9:1
+   |
+LL | #[recursion_limit="1"]
+   | ^^^^^^^^^^^^^^^^^^^^^^
+
+error: crate-level attribute should be an inner attribute: add an exclamation mark: `#![foo]`
+  --> $DIR/unused-attr-macro-rules.rs:9:1
+   |
+LL | #[recursion_limit="1"]
+   | ^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 4 previous errors
+