| - // MIR for `outer` before Inline |
| + // MIR for `outer` after Inline |
| |
| fn outer() -> usize { |
| let mut _0: usize; |
| + scope 1 (inlined inner) { |
| + let mut _1: &[bool; 1]; |
| + let mut _2: bool; |
| + let mut _3: bool; |
| + scope 2 { |
| + debug buffer => _1; |
| + scope 3 { |
| + debug index => _0; |
| + } |
| + } |
| + } |
| |
| bb0: { |
| - _0 = inner() -> [return: bb1, unwind continue]; |
| + StorageLive(_1); |
| + StorageLive(_2); |
| + _1 = const inner::promoted[0]; |
| + _0 = index() -> [return: bb1, unwind continue]; |
| } |
| |
| bb1: { |
| + StorageLive(_3); |
| + _2 = Lt(copy _0, const 1_usize); |
| + assert(move _2, "index out of bounds: the length is {} but the index is {}", const 1_usize, copy _0) -> [success: bb2, unwind continue]; |
| + } |
| + |
| + bb2: { |
| + _3 = copy (*_1)[_0]; |
| + switchInt(move _3) -> [0: bb3, otherwise: bb4]; |
| + } |
| + |
| + bb3: { |
| + _0 = const 0_usize; |
| + goto -> bb4; |
| + } |
| + |
| + bb4: { |
| + StorageDead(_3); |
| + StorageDead(_2); |
| + StorageDead(_1); |
| return; |
| } |
| } |
| |