- // MIR for `two` before Inline + // MIR for `two` after Inline fn two() -> () { let mut _0: (); let _1: (); + let mut _2: fn() {f}; + let mut _4: (); + scope 1 (inlined call::) { + debug f => _2; + let _3: (); + scope 2 (inlined >::call_once - shim(fn() {f})) { + scope 3 (inlined f) { + scope 4 (inlined call::) { + debug f => f; + let _5: (); + scope 5 (inlined >::call_once - shim(fn() {f})) { + } + } + } + } + } bb0: { StorageLive(_1); - _1 = call::(f) -> [return: bb1, unwind unreachable]; + StorageLive(_2); + _2 = f; + StorageLive(_3); + StorageLive(_4); + _4 = const (); + StorageLive(_5); + _5 = f() -> [return: bb1, unwind unreachable]; } bb1: { + StorageDead(_5); + StorageDead(_4); + StorageDead(_3); + StorageDead(_2); StorageDead(_1); _0 = const (); return; } }