- // MIR for `debuginfo` before ReferencePropagation + // MIR for `debuginfo` after ReferencePropagation fn debuginfo() -> () { let mut _0: (); let _1: &mut u8; let mut _2: u8; let _4: debuginfo::T; let _6: (); let mut _7: std::option::Option; let mut _8: isize; let _10: (); let mut _11: &[i32]; let _12: &[i32]; let mut _13: &[i32; 10]; let _14: [i32; 10]; let mut _15: std::ops::RangeFull; let mut _16: usize; let mut _17: usize; let mut _18: bool; let _23: &&mut u8; let _24: &mut u8; let mut _25: debuginfo::T; scope 1 { - debug ref_mut_u8 => _1; + debug ref_mut_u8 => &_2; let _3: &u8; let mut _28: &debuginfo::T; scope 2 { - debug field => _3; + debug field => &((*_28).0: u8); let _5: &u8; scope 3 { - debug reborrow => _5; + debug reborrow => &_2; let _9: &i32; let _22: &&&mut u8; let mut _27: &std::option::Option; scope 4 { - debug variant_field => _9; + debug variant_field => &(((*_27) as Some).0: i32); } scope 5 { - debug constant_index => _19; + debug constant_index => &(*_11)[1 of 3]; debug subslice => _20; debug constant_index_from_end => _21; let _19: &i32; let _20: &[i32]; let _21: &i32; let mut _26: &[i32; 10]; } scope 6 { - debug multiple_borrow => _22; + debug multiple_borrow => &&&(_25.0: u8); } } } } bb0: { - StorageLive(_1); StorageLive(_2); _2 = const 5_u8; - _1 = &mut _2; - StorageLive(_3); _28 = const _; - _3 = &((*_28).0: u8); - StorageLive(_5); - _5 = &(*_1); - StorageLive(_6); StorageLive(_7); _7 = Option::::Some(const 0_i32); _8 = discriminant(_7); switchInt(move _8) -> [0: bb3, 1: bb1, otherwise: bb2]; } bb1: { - StorageLive(_9); _27 = const _; - _9 = &(((*_27) as Some).0: i32); - _6 = const (); - StorageDead(_9); goto -> bb4; } bb2: { unreachable; } bb3: { - _6 = const (); goto -> bb4; } bb4: { StorageDead(_7); - StorageDead(_6); - StorageLive(_10); StorageLive(_11); StorageLive(_12); StorageLive(_13); _26 = const _; _13 = &(*_26); StorageLive(_15); _15 = RangeFull; _12 = <[i32; 10] as Index>::index(move _13, move _15) -> [return: bb5, unwind continue]; } bb5: { StorageDead(_15); StorageDead(_13); _11 = &(*_12); _16 = Len((*_11)); _17 = const 3_usize; _18 = Ge(move _16, move _17); switchInt(move _18) -> [0: bb7, otherwise: bb6]; } bb6: { - StorageLive(_19); - _19 = &(*_11)[1 of 3]; StorageLive(_20); _20 = &(*_11)[2:-1]; StorageLive(_21); _21 = &(*_11)[-1 of 3]; - _10 = const (); StorageDead(_21); StorageDead(_20); - StorageDead(_19); goto -> bb8; } bb7: { - _10 = const (); goto -> bb8; } bb8: { StorageDead(_12); StorageDead(_11); - StorageDead(_10); - StorageLive(_22); - StorageLive(_23); - StorageLive(_24); StorageLive(_25); _25 = T(const 6_u8); - _24 = &mut (_25.0: u8); - _23 = &_24; - _22 = &_23; _0 = const (); StorageDead(_25); - StorageDead(_24); - StorageDead(_23); - StorageDead(_22); - StorageDead(_5); - StorageDead(_3); StorageDead(_2); - StorageDead(_1); return; } }