a8b77cfe54
Adds an additional hint to failures where we encounter an else keyword while we're parsing an if-let block. This is likely that the user has accidentally mixed if-let and let...else together.
148 lines
5.2 KiB
Plaintext
148 lines
5.2 KiB
Plaintext
error: a `&&` expression cannot be directly assigned in `let...else`
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:9:19
|
|
|
|
|
LL | let Some(n) = opt && n == 1 else {
|
|
| ^^^^^^^^^^^^^
|
|
|
|
|
help: wrap the expression in parentheses
|
|
|
|
|
LL | let Some(n) = (opt && n == 1) else {
|
|
| + +
|
|
|
|
error: expected expression, found `let` statement
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:15:26
|
|
|
|
|
LL | let Some(n) = opt && let another = n else {
|
|
| ^^^
|
|
|
|
error: a `&&` expression cannot be directly assigned in `let...else`
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:15:19
|
|
|
|
|
LL | let Some(n) = opt && let another = n else {
|
|
| ^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
help: wrap the expression in parentheses
|
|
|
|
|
LL | let Some(n) = (opt && let another = n) else {
|
|
| + +
|
|
|
|
error: this `if` expression is missing a block after the condition
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:24:5
|
|
|
|
|
LL | if let Some(n) = opt else {
|
|
| ^^
|
|
|
|
|
help: add a block here
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:24:25
|
|
|
|
|
LL | if let Some(n) = opt else {
|
|
| ^
|
|
help: remove the `if` if you meant to write a `let...else` statement
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:24:5
|
|
|
|
|
LL | if let Some(n) = opt else {
|
|
| ^^
|
|
|
|
error: this `if` expression is missing a block after the condition
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:28:5
|
|
|
|
|
LL | if let Some(n) = opt && n == 1 else {
|
|
| ^^
|
|
|
|
|
help: add a block here
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:28:35
|
|
|
|
|
LL | if let Some(n) = opt && n == 1 else {
|
|
| ^
|
|
|
|
error: this `if` expression is missing a block after the condition
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:32:5
|
|
|
|
|
LL | if let Some(n) = opt && let another = n else {
|
|
| ^^
|
|
|
|
|
help: add a block here
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:32:44
|
|
|
|
|
LL | if let Some(n) = opt && let another = n else {
|
|
| ^
|
|
|
|
error: expected `{`, found keyword `else`
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:38:33
|
|
|
|
|
LL | while let Some(n) = opt else {
|
|
| ----- ----------------- ^^^^ expected `{`
|
|
| | |
|
|
| | this `while` condition successfully parsed
|
|
| while parsing the body of this `while` expression
|
|
|
|
error: expected `{`, found keyword `else`
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:44:43
|
|
|
|
|
LL | while let Some(n) = opt && n == 1 else {
|
|
| ----- --------------------------- ^^^^ expected `{`
|
|
| | |
|
|
| | this `while` condition successfully parsed
|
|
| while parsing the body of this `while` expression
|
|
|
|
error: expected `{`, found keyword `else`
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:50:52
|
|
|
|
|
LL | while let Some(n) = opt && let another = n else {
|
|
| ----- ------------------------------------ ^^^^ expected `{`
|
|
| | |
|
|
| | this `while` condition successfully parsed
|
|
| while parsing the body of this `while` expression
|
|
|
|
error: `let` expressions are not supported here
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:15:26
|
|
|
|
|
LL | let Some(n) = opt && let another = n else {
|
|
| ^^^^^^^^^^^^^^^
|
|
|
|
|
= note: only supported directly in conditions of `if` and `while` expressions
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:9:19
|
|
|
|
|
LL | let Some(n) = opt && n == 1 else {
|
|
| ^^^ expected `bool`, found enum `Option`
|
|
|
|
|
= note: expected type `bool`
|
|
found enum `Option<i32>`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:9:9
|
|
|
|
|
LL | let Some(n) = opt && n == 1 else {
|
|
| ^^^^^^^ ------------- this expression has type `bool`
|
|
| |
|
|
| expected `bool`, found enum `Option`
|
|
|
|
|
= note: expected type `bool`
|
|
found enum `Option<_>`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:15:19
|
|
|
|
|
LL | let Some(n) = opt && let another = n else {
|
|
| ^^^ expected `bool`, found enum `Option`
|
|
|
|
|
= note: expected type `bool`
|
|
found enum `Option<i32>`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/ensure-that-let-else-does-not-interact-with-let-chains.rs:15:9
|
|
|
|
|
LL | let Some(n) = opt && let another = n else {
|
|
| ^^^^^^^ ---------------------- this expression has type `bool`
|
|
| |
|
|
| expected `bool`, found enum `Option`
|
|
|
|
|
= note: expected type `bool`
|
|
found enum `Option<_>`
|
|
|
|
error: aborting due to 14 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0308`.
|