|  | - // MIR for `call` before Inline | 
|  | + // MIR for `call` after Inline | 
|  |  | 
|  | fn call(_1: Box<dyn Fn(i32)>) -> () { | 
|  | debug x => _1; | 
|  | let mut _0: (); | 
|  | let _2: (); | 
|  | let mut _3: &std::boxed::Box<dyn std::ops::Fn(i32)>; | 
|  | let mut _4: (i32,); | 
|  | +     scope 1 (inlined <Box<dyn Fn(i32)> as Fn<(i32,)>>::call) { | 
|  | +         let mut _5: &dyn std::ops::Fn(i32); | 
|  | +         let mut _6: std::boxed::Box<dyn std::ops::Fn(i32)>; | 
|  | +         let mut _7: *const dyn std::ops::Fn(i32); | 
|  | +     } | 
|  |  | 
|  | bb0: { | 
|  | StorageLive(_2); | 
|  | StorageLive(_3); | 
|  | _3 = &_1; | 
|  | StorageLive(_4); | 
|  | _4 = (const 1_i32,); | 
|  | -         _2 = <Box<dyn Fn(i32)> as Fn<(i32,)>>::call(move _3, move _4) -> [return: bb1, unwind: bb3]; | 
|  | +         StorageLive(_6); | 
|  | +         StorageLive(_7); | 
|  | +         StorageLive(_5); | 
|  | +         _6 = copy (*_3); | 
|  | +         _7 = copy ((_6.0: std::ptr::Unique<dyn std::ops::Fn(i32)>).0: std::ptr::NonNull<dyn std::ops::Fn(i32)>) as *const dyn std::ops::Fn(i32) (Transmute); | 
|  | +         _5 = &(*_7); | 
|  | +         _2 = <dyn Fn(i32) as Fn<(i32,)>>::call(move _5, move _4) -> [return: bb4, unwind: bb2]; | 
|  | } | 
|  |  | 
|  | bb1: { | 
|  | -         StorageDead(_4); | 
|  | -         StorageDead(_3); | 
|  | -         StorageDead(_2); | 
|  | -         _0 = const (); | 
|  | -         drop(_1) -> [return: bb2, unwind: bb4]; | 
|  | +         return; | 
|  | } | 
|  |  | 
|  | -     bb2: { | 
|  | -         return; | 
|  | +     bb2 (cleanup): { | 
|  | +         drop(_1) -> [return: bb3, unwind terminate(cleanup)]; | 
|  | } | 
|  |  | 
|  | bb3 (cleanup): { | 
|  | -         drop(_1) -> [return: bb4, unwind terminate(cleanup)]; | 
|  | +         resume; | 
|  | } | 
|  |  | 
|  | -     bb4 (cleanup): { | 
|  | -         resume; | 
|  | +     bb4: { | 
|  | +         StorageDead(_5); | 
|  | +         StorageDead(_7); | 
|  | +         StorageDead(_6); | 
|  | +         StorageDead(_4); | 
|  | +         StorageDead(_3); | 
|  | +         StorageDead(_2); | 
|  | +         _0 = const (); | 
|  | +         drop(_1) -> [return: bb1, unwind: bb3]; | 
|  | } | 
|  | } | 
|  |  |