36 lines
1.4 KiB
Rust
36 lines
1.4 KiB
Rust
//@ 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 `+=`
|
|
}
|
|
|
|
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 `+=`
|
|
}
|
|
|
|
fn main() {
|
|
test_where_left_is_let();
|
|
test_where_left_is_not_let()
|
|
}
|