summaryrefslogtreecommitdiffstats
path: root/src/test/ui/lint/unused/unused-macro-rules-compile-error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/lint/unused/unused-macro-rules-compile-error.rs')
-rw-r--r--src/test/ui/lint/unused/unused-macro-rules-compile-error.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/ui/lint/unused/unused-macro-rules-compile-error.rs b/src/test/ui/lint/unused/unused-macro-rules-compile-error.rs
new file mode 100644
index 000000000..4d51db89b
--- /dev/null
+++ b/src/test/ui/lint/unused/unused-macro-rules-compile-error.rs
@@ -0,0 +1,27 @@
+#![deny(unused_macro_rules)]
+// To make sure we are not hitting this
+#![deny(unused_macros)]
+
+macro_rules! num {
+ (one) => { 1 };
+ // Most simple (and common) case
+ (two) => { compile_error!("foo"); };
+ // Some nested use
+ (two_) => { foo(compile_error!("foo")); };
+ (three) => { 3 };
+ (four) => { 4 }; //~ ERROR: rule of macro
+}
+const _NUM: u8 = num!(one) + num!(three);
+
+// compile_error not used as a macro invocation
+macro_rules! num2 {
+ (one) => { 1 };
+ // Only identifier present
+ (two) => { fn compile_error() {} }; //~ ERROR: rule of macro
+ // Only identifier and bang present
+ (two_) => { compile_error! }; //~ ERROR: rule of macro
+ (three) => { 3 };
+}
+const _NUM2: u8 = num2!(one) + num2!(three);
+
+fn main() {}