#![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; }; } }