| // MIR for `bar` after Inline |
| |
| fn bar() -> bool { |
| let mut _0: bool; |
| let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; |
| let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; |
| let mut _3: &i32; |
| let _4: &i32; |
| let _5: i32; |
| let mut _6: &i32; |
| let _7: &i32; |
| let _8: i32; |
| scope 1 { |
| debug f => _1; |
| let mut _9: &i32; |
| let mut _10: &i32; |
| scope 2 (inlined foo) { |
| debug x => _3; |
| debug y => _6; |
| let mut _11: i32; |
| let mut _12: i32; |
| } |
| } |
| |
| bb0: { |
| StorageLive(_1); |
| _1 = foo; |
| StorageLive(_2); |
| _2 = _1; |
| StorageLive(_3); |
| StorageLive(_4); |
| _10 = const bar::promoted[1]; |
| Retag(_10); |
| _4 = &(*_10); |
| _3 = &(*_4); |
| StorageLive(_6); |
| StorageLive(_7); |
| _9 = const bar::promoted[0]; |
| Retag(_9); |
| _7 = &(*_9); |
| _6 = &(*_7); |
| Retag(_3); |
| Retag(_6); |
| StorageLive(_11); |
| _11 = (*_3); |
| StorageLive(_12); |
| _12 = (*_6); |
| _0 = Eq(move _11, move _12); |
| StorageDead(_12); |
| StorageDead(_11); |
| StorageDead(_6); |
| StorageDead(_3); |
| StorageDead(_2); |
| StorageDead(_1); |
| StorageDead(_7); |
| StorageDead(_4); |
| return; |
| } |
| } |