// MIR for `main` before ElaborateDrops fn main() -> () { let mut _0: (); let _1: std::boxed::Box; let mut _2: usize; let mut _3: usize; let mut _4: *mut u8; let mut _5: std::boxed::Box; let _6: (); let mut _7: std::boxed::Box; scope 1 { debug x => _1; } scope 2 { } bb0: { StorageLive(_1); _2 = SizeOf(S); _3 = AlignOf(S); _4 = alloc::alloc::exchange_malloc(move _2, move _3) -> bb1; } bb1: { StorageLive(_5); _5 = ShallowInitBox(move _4, S); (*_5) = S::new() -> [return: bb2, unwind: bb8]; } bb2: { _1 = move _5; drop(_5) -> bb3; } bb3: { StorageDead(_5); StorageLive(_6); StorageLive(_7); _7 = move _1; _6 = std::mem::drop::>(move _7) -> [return: bb4, unwind: bb6]; } bb4: { StorageDead(_7); StorageDead(_6); _0 = const (); drop(_1) -> bb5; } bb5: { StorageDead(_1); return; } bb6 (cleanup): { drop(_7) -> [return: bb7, unwind terminate]; } bb7 (cleanup): { drop(_1) -> [return: bb9, unwind terminate]; } bb8 (cleanup): { drop(_5) -> [return: bb9, unwind terminate]; } bb9 (cleanup): { resume; } }