about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorest31 <MTest31@outlook.com>2022-06-09 23:46:40 +0200
committerest31 <MTest31@outlook.com>2022-06-09 23:49:13 +0200
commit787e24cdfd5bef5136540287dd918e48b8a645db (patch)
tree6df61d855b67f996425c7f8cb65e70e8a77d29e2 /src/test
parent777e136f4cd811bec0c5dabd47e1ae4285f25ca2 (diff)
downloadrust-787e24cdfd5bef5136540287dd918e48b8a645db.tar.gz
rust-787e24cdfd5bef5136540287dd918e48b8a645db.zip
Test that the unused_macros lint works correctly if rules are malformed
The unused_macro_rules lint had a bug where it would regard all rules of
a macro as unused if one rule were malformed. This bug doesn't exist
with the unused_macros lint. To ensure it doesn't appear in the future,
we add a test for it.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/lint/unused/unused-macros-malformed-rule.rs15
-rw-r--r--src/test/ui/lint/unused/unused-macros-malformed-rule.stderr26
2 files changed, 41 insertions, 0 deletions
diff --git a/src/test/ui/lint/unused/unused-macros-malformed-rule.rs b/src/test/ui/lint/unused/unused-macros-malformed-rule.rs
new file mode 100644
index 00000000000..d4c35fad9b0
--- /dev/null
+++ b/src/test/ui/lint/unused/unused-macros-malformed-rule.rs
@@ -0,0 +1,15 @@
+#![deny(unused_macros)]
+
+macro_rules! foo { //~ ERROR: unused macro definition
+    (v) => {};
+    () => 0; //~ ERROR: macro rhs must be delimited
+}
+
+macro_rules! bar {
+    (v) => {};
+    () => 0; //~ ERROR: macro rhs must be delimited
+}
+
+fn main() {
+    bar!(v);
+}
diff --git a/src/test/ui/lint/unused/unused-macros-malformed-rule.stderr b/src/test/ui/lint/unused/unused-macros-malformed-rule.stderr
new file mode 100644
index 00000000000..9a880dccfbf
--- /dev/null
+++ b/src/test/ui/lint/unused/unused-macros-malformed-rule.stderr
@@ -0,0 +1,26 @@
+error: macro rhs must be delimited
+  --> $DIR/unused-macros-malformed-rule.rs:5:11
+   |
+LL |     () => 0;
+   |           ^
+
+error: macro rhs must be delimited
+  --> $DIR/unused-macros-malformed-rule.rs:10:11
+   |
+LL |     () => 0;
+   |           ^
+
+error: unused macro definition: `foo`
+  --> $DIR/unused-macros-malformed-rule.rs:3:14
+   |
+LL | macro_rules! foo {
+   |              ^^^
+   |
+note: the lint level is defined here
+  --> $DIR/unused-macros-malformed-rule.rs:1:9
+   |
+LL | #![deny(unused_macros)]
+   |         ^^^^^^^^^^^^^
+
+error: aborting due to 3 previous errors
+