]> git.proxmox.com Git - rustc.git/blame - src/test/ui/non-fmt-panic.rs
New upstream version 1.52.0~beta.3+dfsg1
[rustc.git] / src / test / ui / non-fmt-panic.rs
CommitLineData
fc512014
XL
1// build-pass (FIXME(62277): should be check-pass)
2// aux-build:fancy-panic.rs
3
4extern crate fancy_panic;
5
6const C: &str = "abc {}";
7static S: &str = "{bla}";
8
9#[allow(unreachable_code)]
10fn main() {
11 panic!("here's a brace: {"); //~ WARN panic message contains a brace
12 std::panic!("another one: }"); //~ WARN panic message contains a brace
13 core::panic!("Hello {}"); //~ WARN panic message contains an unused formatting placeholder
14 assert!(false, "{:03x} {test} bla");
15 //~^ WARN panic message contains unused formatting placeholders
5869c6ff
XL
16 assert!(false, S);
17 //~^ WARN panic message is not a string literal
fc512014 18 debug_assert!(false, "{{}} bla"); //~ WARN panic message contains braces
5869c6ff
XL
19 panic!(C); //~ WARN panic message is not a string literal
20 panic!(S); //~ WARN panic message is not a string literal
21 std::panic!(123); //~ WARN panic message is not a string literal
22 core::panic!(&*"abc"); //~ WARN panic message is not a string literal
fc512014
XL
23 panic!(concat!("{", "}")); //~ WARN panic message contains an unused formatting placeholder
24 panic!(concat!("{", "{")); //~ WARN panic message contains braces
25
26 fancy_panic::fancy_panic!("test {} 123");
27 //~^ WARN panic message contains an unused formatting placeholder
28
5869c6ff
XL
29 fancy_panic::fancy_panic!(S);
30 //~^ WARN panic message is not a string literal
31
6a06907d
XL
32 macro_rules! a {
33 () => { 123 };
34 }
35
36 panic!(a!()); //~ WARN panic message is not a string literal
37
38 panic!(format!("{}", 1)); //~ WARN panic message is not a string literal
39
40 panic![123]; //~ WARN panic message is not a string literal
41 panic!{123}; //~ WARN panic message is not a string literal
42
fc512014
XL
43 // Check that the lint only triggers for std::panic and core::panic,
44 // not any panic macro:
45 macro_rules! panic {
46 ($e:expr) => ();
47 }
48 panic!("{}"); // OK
5869c6ff 49 panic!(S); // OK
fc512014 50}