]>
Commit | Line | Data |
---|---|---|
5e7ed085 FG |
1 | #![feature(let_chains, let_else)] |
2 | ||
3 | fn main() { | |
4 | let opt = Some(1i32); | |
5 | ||
6 | let Some(n) = opt else { | |
7 | return; | |
8 | }; | |
9 | let Some(n) = opt && n == 1 else { | |
10 | //~^ ERROR a `&&` expression cannot be directly assigned in `let...else` | |
11 | //~| ERROR mismatched types | |
12 | //~| ERROR mismatched types | |
13 | return; | |
14 | }; | |
15 | let Some(n) = opt && let another = n else { | |
16 | //~^ ERROR a `&&` expression cannot be directly assigned in `let...else` | |
17 | //~| ERROR `let` expressions are not supported here | |
18 | //~| ERROR mismatched types | |
19 | //~| ERROR mismatched types | |
20 | return; | |
21 | }; | |
22 | ||
23 | if let Some(n) = opt else { | |
923072b8 | 24 | //~^ ERROR this `if` expression is missing a block after the condition |
5e7ed085 FG |
25 | return; |
26 | }; | |
27 | if let Some(n) = opt && n == 1 else { | |
923072b8 | 28 | //~^ ERROR this `if` expression is missing a block after the condition |
5e7ed085 FG |
29 | return; |
30 | }; | |
31 | if let Some(n) = opt && let another = n else { | |
923072b8 | 32 | //~^ ERROR this `if` expression is missing a block after the condition |
5e7ed085 FG |
33 | return; |
34 | }; | |
35 | ||
36 | { | |
37 | while let Some(n) = opt else { | |
38 | //~^ ERROR expected `{`, found keyword `else` | |
39 | return; | |
40 | }; | |
41 | } | |
42 | { | |
43 | while let Some(n) = opt && n == 1 else { | |
44 | //~^ ERROR expected `{`, found keyword `else` | |
45 | return; | |
46 | }; | |
47 | } | |
48 | { | |
49 | while let Some(n) = opt && let another = n else { | |
50 | //~^ ERROR expected `{`, found keyword `else` | |
51 | return; | |
52 | }; | |
53 | } | |
54 | } |