]> git.lizzy.rs Git - rust.git/blob - tests/ui/let-else/let-else-run-pass.rs
Don't resolve type var roots in point_at_expr_source_of_inferred_type
[rust.git] / tests / ui / let-else / let-else-run-pass.rs
1 // run-pass
2
3
4
5 fn main() {
6     #[allow(dead_code)]
7     enum MyEnum {
8         A(String),
9         B { f: String },
10         C,
11     }
12     // ref binding to non-copy value and or-pattern
13     let (MyEnum::A(ref x) | MyEnum::B { f: ref x }) = (MyEnum::B { f: String::new() }) else {
14         panic!();
15     };
16     assert_eq!(x, "");
17
18     // nested let-else
19     let mut x = 1;
20     loop {
21         let 4 = x else {
22             let 3 = x else {
23                 x += 1;
24                 continue;
25             };
26             break;
27         };
28         panic!();
29     }
30     assert_eq!(x, 3);
31
32     // else return
33     let Some(1) = Some(2) else { return };
34     panic!();
35 }