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