| - // MIR for `FOO` before PromoteTemps |
| + // MIR for `FOO` after PromoteTemps |
| |
| static mut FOO: *const &i32 = { |
| let mut _0: *const &i32; |
| let mut _1: &[&i32]; |
| let mut _2: &[&i32; 1]; |
| let _3: [&i32; 1]; |
| let mut _4: &i32; |
| let _5: *const i32; |
| + let mut _6: &[&i32; 1]; |
| scope 1 { |
| } |
| |
| bb0: { |
| StorageLive(_1); |
| StorageLive(_2); |
| - StorageLive(_3); |
| - StorageLive(_4); |
| - StorageLive(_5); |
| - _5 = const {alloc3: *const i32}; |
| - _4 = &(*_5); |
| - _3 = [move _4]; |
| - _2 = &_3; |
| + _6 = const _; |
| + _2 = &(*_6); |
| _1 = move _2 as &[&i32] (PointerCoercion(Unsize)); |
| - StorageDead(_4); |
| StorageDead(_2); |
| _0 = core::slice::<impl [&i32]>::as_ptr(move _1) -> [return: bb1, unwind: bb2]; |
| } |
| |
| bb1: { |
| - StorageDead(_5); |
| - StorageDead(_3); |
| StorageDead(_1); |
| return; |
| } |
| |
| bb2 (cleanup): { |
| resume; |
| } |
| } |
| - |
| - alloc3 (extern static: X) |
| |