rust/tests/ui/issues/issue-27042.stderr
Gurinder Singh 6289ed8428 Remove note about iteration count in coerce
and replace it with a simple note suggesting
returning a value.

The type mismatch error was never due to
how many times the loop iterates. It is more
because of the peculiar structure of what the for
loop desugars to. So the note talking about
iteration count didn't make sense
2024-04-30 12:46:59 +05:30

58 lines
1.7 KiB
Plaintext

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 the `break` 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 `()`
|
= note: `for` loops evaluate to unit type `()`
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`.