about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMara Bos <m-ou.se@m-ou.se>2021-02-14 18:17:34 +0100
committerMara Bos <m-ou.se@m-ou.se>2021-02-14 18:17:34 +0100
commit1abc1e2a43c116a87bd430fa14a86e67617b861a (patch)
tree869ff93809a96dfa5e9df0af2007c5ddde71e79e
parentef778e796502691ebfb1f3dd5c03248aea6d2ac8 (diff)
downloadrust-1abc1e2a43c116a87bd430fa14a86e67617b861a.tar.gz
rust-1abc1e2a43c116a87bd430fa14a86e67617b861a.zip
Add test for non_fmt_panic lint for panic!(some_macro!()).
-rw-r--r--src/test/ui/non-fmt-panic.rs6
-rw-r--r--src/test/ui/non-fmt-panic.stderr18
2 files changed, 23 insertions, 1 deletions
diff --git a/src/test/ui/non-fmt-panic.rs b/src/test/ui/non-fmt-panic.rs
index 25c53316e12..ff9e3b497f2 100644
--- a/src/test/ui/non-fmt-panic.rs
+++ b/src/test/ui/non-fmt-panic.rs
@@ -29,6 +29,12 @@ fn main() {
     fancy_panic::fancy_panic!(S);
     //~^ WARN panic message is not a string literal
 
+    macro_rules! a {
+        () => { 123 };
+    }
+
+    panic!(a!()); //~ WARN panic message is not a string literal
+
     // Check that the lint only triggers for std::panic and core::panic,
     // not any panic macro:
     macro_rules! panic {
diff --git a/src/test/ui/non-fmt-panic.stderr b/src/test/ui/non-fmt-panic.stderr
index 45187c518c4..2f33f04cb19 100644
--- a/src/test/ui/non-fmt-panic.stderr
+++ b/src/test/ui/non-fmt-panic.stderr
@@ -183,5 +183,21 @@ LL |     fancy_panic::fancy_panic!(S);
    |
    = note: this is no longer accepted in Rust 2021
 
-warning: 14 warnings emitted
+warning: panic message is not a string literal
+  --> $DIR/non-fmt-panic.rs:36:12
+   |
+LL |     panic!(a!());
+   |            ^^^^
+   |
+   = note: this is no longer accepted in Rust 2021
+help: add a "{}" format string to Display the message
+   |
+LL |     panic!("{}", a!());
+   |            ^^^^^
+help: or use std::panic::panic_any instead
+   |
+LL |     std::panic::panic_any(a!());
+   |     ^^^^^^^^^^^^^^^^^^^^^^
+
+warning: 15 warnings emitted