| - // MIR for `maybe_move` before ElaborateDrops |
| + // MIR for `maybe_move` after ElaborateDrops |
| |
| fn maybe_move(_1: bool, _2: Box<String>) -> Option<String> { |
| debug cond => _1; |
| debug thing => _2; |
| let mut _0: std::option::Option<std::string::String>; |
| let mut _3: bool; |
| let mut _4: std::string::String; |
| + let mut _5: bool; |
| + let mut _6: &mut std::boxed::Box<std::string::String>; |
| + let mut _7: (); |
| + let mut _8: &mut std::boxed::Box<std::string::String>; |
| + let mut _9: (); |
| + let mut _10: *const std::string::String; |
| |
| bb0: { |
| + _5 = const false; |
| + _5 = const true; |
| StorageLive(_3); |
| _3 = copy _1; |
| switchInt(move _3) -> [0: bb3, otherwise: bb1]; |
| } |
| |
| bb1: { |
| StorageLive(_4); |
| + _5 = const false; |
| _4 = move (*_2); |
| _0 = Option::<String>::Some(move _4); |
| - drop(_4) -> [return: bb2, unwind: bb6]; |
| + goto -> bb2; |
| } |
| |
| bb2: { |
| StorageDead(_4); |
| goto -> bb4; |
| } |
| |
| bb3: { |
| _0 = Option::<String>::None; |
| goto -> bb4; |
| } |
| |
| bb4: { |
| StorageDead(_3); |
| - drop(_2) -> [return: bb5, unwind continue]; |
| + goto -> bb14; |
| } |
| |
| bb5: { |
| return; |
| } |
| |
| bb6 (cleanup): { |
| - drop(_2) -> [return: bb7, unwind terminate(cleanup)]; |
| + goto -> bb7; |
| } |
| |
| bb7 (cleanup): { |
| resume; |
| + } |
| + |
| + bb8: { |
| + goto -> bb5; |
| + } |
| + |
| + bb9: { |
| + _6 = &mut _2; |
| + _7 = <Box<String> as Drop>::drop(move _6) -> [return: bb8, unwind: bb7]; |
| + } |
| + |
| + bb10 (cleanup): { |
| + _8 = &mut _2; |
| + _9 = <Box<String> as Drop>::drop(move _8) -> [return: bb7, unwind terminate(cleanup)]; |
| + } |
| + |
| + bb11: { |
| + goto -> bb13; |
| + } |
| + |
| + bb12: { |
| + drop((*_10)) -> [return: bb9, unwind: bb10]; |
| + } |
| + |
| + bb13: { |
| + switchInt(copy _5) -> [0: bb9, otherwise: bb12]; |
| + } |
| + |
| + bb14: { |
| + _10 = copy ((_2.0: std::ptr::Unique<std::string::String>).0: std::ptr::NonNull<std::string::String>) as *const std::string::String (Transmute); |
| + goto -> bb11; |
| } |
| } |
| |