Control-flow expressions are not allowed inside a const context.
At the moment, if
and match
, as well as the looping constructs for
, while
, and loop
, are forbidden inside a const
, static
, or const fn
.
const _: i32 = { let mut x = 0; loop { x += 1; if x == 4 { break; } } x };
This will be allowed at some point in the future, but the implementation is not yet complete. See the tracking issue for conditionals or loops in a const context for the current status.