56 lines
1.5 KiB
Rust
56 lines
1.5 KiB
Rust
#![feature(let_chains)]
|
|
|
|
fn main() {
|
|
let opt = Some(1i32);
|
|
|
|
let Some(n) = opt else {
|
|
return;
|
|
};
|
|
let Some(n) = opt && n == 1 else {
|
|
//~^ ERROR a `&&` expression cannot be directly assigned in `let...else`
|
|
//~| ERROR mismatched types
|
|
//~| ERROR mismatched types
|
|
return;
|
|
};
|
|
let Some(n) = opt && let another = n else {
|
|
//~^ ERROR a `&&` expression cannot be directly assigned in `let...else`
|
|
//~| ERROR `let` expressions are not supported here
|
|
//~| ERROR mismatched types
|
|
//~| ERROR mismatched types
|
|
//~| ERROR expected expression, found `let` statement
|
|
return;
|
|
};
|
|
|
|
if let Some(n) = opt else {
|
|
//~^ ERROR this `if` expression is missing a block after the condition
|
|
return;
|
|
};
|
|
if let Some(n) = opt && n == 1 else {
|
|
//~^ ERROR this `if` expression is missing a block after the condition
|
|
return;
|
|
};
|
|
if let Some(n) = opt && let another = n else {
|
|
//~^ ERROR this `if` expression is missing a block after the condition
|
|
return;
|
|
};
|
|
|
|
{
|
|
while let Some(n) = opt else {
|
|
//~^ ERROR expected `{`, found keyword `else`
|
|
return;
|
|
};
|
|
}
|
|
{
|
|
while let Some(n) = opt && n == 1 else {
|
|
//~^ ERROR expected `{`, found keyword `else`
|
|
return;
|
|
};
|
|
}
|
|
{
|
|
while let Some(n) = opt && let another = n else {
|
|
//~^ ERROR expected `{`, found keyword `else`
|
|
return;
|
|
};
|
|
}
|
|
}
|