//@revisions: noopt opt //@[opt] compile-flags: -O //! Make sure we error on erroneous consts even if they are unused. struct Fail(T); impl Fail { const C: () = panic!(); //~ERROR evaluation of `Fail::::C` failed } pub static FOO: () = { if false { // This bad constant is only used in dead code in a static initializer... and yet we still // must make sure that the build fails. // This relies on const-eval evaluating all `required_consts` of the `static` MIR body. Fail::::C; //~ constant } }; fn main() { FOO }