| // Tests that the compiler does not ICE when const-evaluating a `panic!()` invocation with a |
| // non-`&str` argument. |
| |
| const _: () = panic!(1); |
| //~^ ERROR: argument to `panic!()` in a const context must have type `&str` |
| |
| static _FOO: () = panic!(true); |
| //~^ ERROR: argument to `panic!()` in a const context must have type `&str` |
| |
| const fn _foo() { |
| panic!(&1); |
| //~^ ERROR: argument to `panic!()` in a const context must have type `&str` |
| } |
| |
| // ensure that conforming panics don't cause an error beyond the failure to const eval |
| const _: () = panic!(); |
| //~^ ERROR: evaluation of constant value failed |
| static _BAR: () = panic!("panic in static"); |
| //~^ ERROR could not evaluate static initializer |
| |
| const fn _bar() { |
| panic!("panic in const fn"); |
| } |
| |
| fn main() {} |