|
| 1 | +// MIR for `let_else` after built |
| 2 | + |
| 3 | +| User Type Annotations |
| 4 | +| 0: user_ty: Canonical { value: Ty((u32, u64, &'static char)), max_universe: U0, variables: [] }, span: $DIR/user_type_annotations.rs:35:20: 35:45, inferred_ty: (u32, u64, &char) |
| 5 | +| 1: user_ty: Canonical { value: Ty((u32, u64, &'static char)), max_universe: U0, variables: [] }, span: $DIR/user_type_annotations.rs:35:20: 35:45, inferred_ty: (u32, u64, &char) |
| 6 | +| 2: user_ty: Canonical { value: Ty((u32, u64, &'static char)), max_universe: U0, variables: [] }, span: $DIR/user_type_annotations.rs:35:20: 35:45, inferred_ty: (u32, u64, &char) |
| 7 | +| |
| 8 | +fn let_else() -> () { |
| 9 | + let mut _0: (); |
| 10 | + let mut _1: !; |
| 11 | + let _2: u32 as UserTypeProjection { base: UserType(0), projs: [Field(0, ())] }; |
| 12 | + let _3: u64 as UserTypeProjection { base: UserType(0), projs: [Field(1, ())] }; |
| 13 | + let _4: &char as UserTypeProjection { base: UserType(0), projs: [Field(2, ())] }; |
| 14 | + let mut _5: (u32, u64, &char); |
| 15 | + let mut _6: &char; |
| 16 | + let _7: &char; |
| 17 | + let _8: char; |
| 18 | + scope 1 { |
| 19 | + debug x => _2; |
| 20 | + debug y => _3; |
| 21 | + debug z => _4; |
| 22 | + } |
| 23 | + |
| 24 | + bb0: { |
| 25 | + StorageLive(_2); |
| 26 | + StorageLive(_3); |
| 27 | + StorageLive(_4); |
| 28 | + StorageLive(_5); |
| 29 | + StorageLive(_6); |
| 30 | + StorageLive(_7); |
| 31 | + StorageLive(_8); |
| 32 | + _8 = const 'u'; |
| 33 | + _7 = &_8; |
| 34 | + _6 = &(*_7); |
| 35 | + _5 = (const 7_u32, const 12_u64, move _6); |
| 36 | + StorageDead(_6); |
| 37 | + PlaceMention(_5); |
| 38 | + falseEdge -> [real: bb4, imaginary: bb3]; |
| 39 | + } |
| 40 | + |
| 41 | + bb1: { |
| 42 | + _1 = core::panicking::panic(const "internal error: entered unreachable code") -> bb6; |
| 43 | + } |
| 44 | + |
| 45 | + bb2: { |
| 46 | + unreachable; |
| 47 | + } |
| 48 | + |
| 49 | + bb3: { |
| 50 | + goto -> bb5; |
| 51 | + } |
| 52 | + |
| 53 | + bb4: { |
| 54 | + AscribeUserType(_5, +, UserTypeProjection { base: UserType(2), projs: [] }); |
| 55 | + _2 = copy (_5.0: u32); |
| 56 | + _3 = copy (_5.1: u64); |
| 57 | + _4 = copy (_5.2: &char); |
| 58 | + StorageDead(_7); |
| 59 | + StorageDead(_5); |
| 60 | + _0 = const (); |
| 61 | + StorageDead(_8); |
| 62 | + StorageDead(_4); |
| 63 | + StorageDead(_3); |
| 64 | + StorageDead(_2); |
| 65 | + return; |
| 66 | + } |
| 67 | + |
| 68 | + bb5: { |
| 69 | + StorageDead(_7); |
| 70 | + StorageDead(_5); |
| 71 | + StorageDead(_8); |
| 72 | + StorageDead(_4); |
| 73 | + StorageDead(_3); |
| 74 | + StorageDead(_2); |
| 75 | + goto -> bb1; |
| 76 | + } |
| 77 | + |
| 78 | + bb6 (cleanup): { |
| 79 | + resume; |
| 80 | + } |
| 81 | +} |
0 commit comments