| //@ edition:2024 | |
| //@ run-rustfix | |
| #![allow(irrefutable_let_patterns)] | |
| fn test_where_left_is_not_let() { | |
| let y = 2; | |
| if let _ = 1 && true && y == 2 {}; | |
| //~^ ERROR expected expression, found `let` statement | |
| //~| NOTE only supported directly in conditions of `if` and `while` expressions | |
| //~| ERROR mismatched types | |
| //~| NOTE expected `bool`, found integer | |
| //~| NOTE you are add-assigning the right-hand side expression to the result of this let-chain | |
| //~| NOTE expected because this is `bool` | |
| //~| ERROR binary assignment operation `+=` cannot be used in a let chain | |
| //~| NOTE cannot use `+=` in a let chain | |
| //~| HELP you might have meant to compare with `==` instead of assigning with `+=` | |
| //~| ERROR mismatched types | |
| //~| NOTE expected `bool`, found `()` | |
| } | |
| fn test_where_left_is_let() { | |
| let y = 2; | |
| if let _ = 1 && y == 2 {}; | |
| //~^ ERROR expected expression, found `let` statement | |
| //~| NOTE only supported directly in conditions of `if` and `while` expressions | |
| //~| ERROR mismatched types | |
| //~| NOTE expected `bool`, found integer | |
| //~| NOTE you are add-assigning the right-hand side expression to the result of this let-chain | |
| //~| ERROR binary assignment operation `+=` cannot be used in a let chain | |
| //~| NOTE cannot use `+=` in a let chain | |
| //~| HELP you might have meant to compare with `==` instead of assigning with `+=` | |
| //~| ERROR mismatched types | |
| //~| NOTE expected `bool`, found `()` | |
| } | |
| fn main() { | |
| test_where_left_is_let(); | |
| test_where_left_is_not_let() | |
| } |