Description
Location
https://doc.rust-lang.org/reference/expressions/loop-expr.html#continue-expressions
Summary
The reference unambiguously states that "A continue expression is only permitted in the body of a loop.", but this is demonstrably not true for continue 'label
expressions.
The following compiles and runs an infinite loop. A warning mentions the body being unreachable, but otherwise the behavior is as one would expect:
'a: while continue 'a {}
Meanwhile, the following does not compile:
while { continue; true } {}
In the second example, an error is generated:
error[E0590]:
break
orcontinue
with no label in the condition of awhile
loop
Furthermore, rustc --explain E0590
demonstrates label usage with a break
expression:
'foo: while break 'foo {}
Unless I have misunderstood something, there seems to be conflicting information between the reference and the actual behavior of the compiler.
Edit: grammar.