| // MIR for `main` after SimplifyCfg-initial |
| |
| | User Type Annotations |
| | 0: Canonical { max_universe: U0, variables: [], value: Ty(std::option::Option<std::boxed::Box<u32>>) } at $DIR/basic_assignment.rs:18:17: 18:33 |
| | 1: Canonical { max_universe: U0, variables: [], value: Ty(std::option::Option<std::boxed::Box<u32>>) } at $DIR/basic_assignment.rs:18:17: 18:33 |
| | |
| fn main() -> () { |
| let mut _0: (); // return place in scope 0 at $DIR/basic_assignment.rs:10:11: 10:11 |
| let _1: bool; // in scope 0 at $DIR/basic_assignment.rs:11:9: 11:17 |
| let mut _3: bool; // in scope 0 at $DIR/basic_assignment.rs:16:16: 16:24 |
| let mut _6: std::option::Option<std::boxed::Box<u32>>; // in scope 0 at $DIR/basic_assignment.rs:23:14: 23:20 |
| scope 1 { |
| debug nodrop_x => _1; // in scope 1 at $DIR/basic_assignment.rs:11:9: 11:17 |
| let _2: bool; // in scope 1 at $DIR/basic_assignment.rs:12:9: 12:17 |
| scope 2 { |
| debug nodrop_y => _2; // in scope 2 at $DIR/basic_assignment.rs:12:9: 12:17 |
| let _4: std::option::Option<std::boxed::Box<u32>> as UserTypeProjection { base: UserType(0), projs: [] }; // in scope 2 at $DIR/basic_assignment.rs:18:9: 18:15 |
| scope 3 { |
| debug drop_x => _4; // in scope 3 at $DIR/basic_assignment.rs:18:9: 18:15 |
| let _5: std::option::Option<std::boxed::Box<u32>>; // in scope 3 at $DIR/basic_assignment.rs:19:9: 19:15 |
| scope 4 { |
| debug drop_y => _5; // in scope 4 at $DIR/basic_assignment.rs:19:9: 19:15 |
| } |
| } |
| } |
| } |
| |
| bb0: { |
| StorageLive(_1); // scope 0 at $DIR/basic_assignment.rs:11:9: 11:17 |
| _1 = const false; // scope 0 at $DIR/basic_assignment.rs:11:20: 11:25 |
| FakeRead(ForLet, _1); // scope 0 at $DIR/basic_assignment.rs:11:9: 11:17 |
| StorageLive(_2); // scope 1 at $DIR/basic_assignment.rs:12:9: 12:17 |
| StorageLive(_3); // scope 2 at $DIR/basic_assignment.rs:16:16: 16:24 |
| _3 = _1; // scope 2 at $DIR/basic_assignment.rs:16:16: 16:24 |
| _2 = move _3; // scope 2 at $DIR/basic_assignment.rs:16:5: 16:24 |
| StorageDead(_3); // scope 2 at $DIR/basic_assignment.rs:16:23: 16:24 |
| StorageLive(_4); // scope 2 at $DIR/basic_assignment.rs:18:9: 18:15 |
| _4 = Option::<Box<u32>>::None; // scope 2 at $DIR/basic_assignment.rs:18:36: 18:40 |
| FakeRead(ForLet, _4); // scope 2 at $DIR/basic_assignment.rs:18:9: 18:15 |
| AscribeUserType(_4, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 2 at $DIR/basic_assignment.rs:18:17: 18:33 |
| StorageLive(_5); // scope 3 at $DIR/basic_assignment.rs:19:9: 19:15 |
| StorageLive(_6); // scope 4 at $DIR/basic_assignment.rs:23:14: 23:20 |
| _6 = move _4; // scope 4 at $DIR/basic_assignment.rs:23:14: 23:20 |
| replace(_5 <- move _6) -> [return: bb1, unwind: bb5]; // scope 4 at $DIR/basic_assignment.rs:23:5: 23:11 |
| } |
| |
| bb1: { |
| drop(_6) -> [return: bb2, unwind: bb6]; // scope 4 at $DIR/basic_assignment.rs:23:19: 23:20 |
| } |
| |
| bb2: { |
| StorageDead(_6); // scope 4 at $DIR/basic_assignment.rs:23:19: 23:20 |
| _0 = const (); // scope 0 at $DIR/basic_assignment.rs:10:11: 24:2 |
| drop(_5) -> [return: bb3, unwind: bb7]; // scope 3 at $DIR/basic_assignment.rs:24:1: 24:2 |
| } |
| |
| bb3: { |
| StorageDead(_5); // scope 3 at $DIR/basic_assignment.rs:24:1: 24:2 |
| drop(_4) -> [return: bb4, unwind: bb8]; // scope 2 at $DIR/basic_assignment.rs:24:1: 24:2 |
| } |
| |
| bb4: { |
| StorageDead(_4); // scope 2 at $DIR/basic_assignment.rs:24:1: 24:2 |
| StorageDead(_2); // scope 1 at $DIR/basic_assignment.rs:24:1: 24:2 |
| StorageDead(_1); // scope 0 at $DIR/basic_assignment.rs:24:1: 24:2 |
| return; // scope 0 at $DIR/basic_assignment.rs:24:2: 24:2 |
| } |
| |
| bb5 (cleanup): { |
| drop(_6) -> bb6; // scope 4 at $DIR/basic_assignment.rs:23:19: 23:20 |
| } |
| |
| bb6 (cleanup): { |
| drop(_5) -> bb7; // scope 3 at $DIR/basic_assignment.rs:24:1: 24:2 |
| } |
| |
| bb7 (cleanup): { |
| drop(_4) -> bb8; // scope 2 at $DIR/basic_assignment.rs:24:1: 24:2 |
| } |
| |
| bb8 (cleanup): { |
| resume; // scope 0 at $DIR/basic_assignment.rs:10:1: 24:2 |
| } |
| } |