error[E0308]: mismatched types --> $DIR/break-while-condition.rs:9:20 | LL | let _: ! = { | ____________________^ LL | | 'a: while break 'a {}; LL | | }; | |_________^ expected `!`, found `()` | = note: expected type `!` found unit type `()` error[E0308]: mismatched types --> $DIR/break-while-condition.rs:16:13 | LL | / while false { LL | | break LL | | } | |_____________^ expected `!`, found `()` | = note: expected type `!` found unit type `()` error[E0308]: mismatched types --> $DIR/break-while-condition.rs:24:13 | LL | / while false { LL | | return LL | | } | |_____________^ expected `!`, found `()` | = note: expected type `!` found unit type `()` note: the function expects a value to always be returned, but loops might run zero times --> $DIR/break-while-condition.rs:24:13 | LL | while false { | ^^^^^^^^^^^ this might have zero elements to iterate on LL | return | ------ if the loop doesn't execute, this value would never get returned = help: return a value for the case when the loop has zero elements to iterate on, or consider changing the return type to account for that possibility error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0308`.