rust/tests/ui/inline-const/promotion.rs

22 lines
500 B
Rust

#![allow(arithmetic_overflow, unconditional_panic)]
// The only way to have promoteds that fail is in `const fn` called from `const`/`static`.
// Make sure that in a `const` block, we do not promote such calls.
const fn div_by_zero() -> i32 {
1 / 0
}
const fn mk_false() -> bool {
false
}
fn main() {
let v = const {
if mk_false() {
let _x: &'static i32 = &div_by_zero();
//~^ ERROR: temporary value dropped while borrowed
}
42
};
}