mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
4b15959218
We weren't accounting for the case where `break` was immediately within the `loop` block.
55 lines
1.6 KiB
Text
55 lines
1.6 KiB
Text
warning: denote infinite loops with `loop { ... }`
|
|
--> $DIR/issue-27042.rs:8:9
|
|
|
|
|
LL | / 'b:
|
|
LL | |
|
|
LL | | while true { break }; // but here we cite the whole loop
|
|
| |__________________^ help: use `loop`
|
|
|
|
|
= note: `#[warn(while_true)]` on by default
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/issue-27042.rs:6:16
|
|
|
|
|
LL | let _: i32 =
|
|
| - expected because of this assignment
|
|
LL | 'a: // in this case, the citation is just the `break`:
|
|
LL | loop { break };
|
|
| ---- ^^^^^ expected `i32`, found `()`
|
|
| |
|
|
| this loop is expected to be of type `i32`
|
|
|
|
|
help: give it a value of the expected type
|
|
|
|
|
LL | loop { break 42 };
|
|
| ++
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/issue-27042.rs:8:9
|
|
|
|
|
LL | let _: i32 =
|
|
| --- expected due to this
|
|
LL | / 'b:
|
|
LL | |
|
|
LL | | while true { break }; // but here we cite the whole loop
|
|
| |____________________________^ expected `i32`, found `()`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/issue-27042.rs:12:9
|
|
|
|
|
LL | / 'c:
|
|
LL | | for _ in None { break }; // but here we cite the whole loop
|
|
| |_______________________________^ expected `i32`, found `()`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/issue-27042.rs:15:9
|
|
|
|
|
LL | let _: i32 =
|
|
| --- expected due to this
|
|
LL | / 'd:
|
|
LL | | while let Some(_) = None { break };
|
|
| |__________________________________________^ expected `i32`, found `()`
|
|
|
|
error: aborting due to 4 previous errors; 1 warning emitted
|
|
|
|
For more information about this error, try `rustc --explain E0308`.
|