- // MIR for `test` before SimplifyComparisonIntegral + // MIR for `test` after SimplifyComparisonIntegral fn test(_1: T) -> () { debug x => _1; let mut _0: (); let _2: &[T]; let _3: &[T; 3]; let _4: [T; 3]; let mut _5: usize; let mut _6: bool; let mut _10: !; scope 1 { debug v => _2; let _7: &T; let _8: &T; let _9: &T; scope 2 { debug v1 => _7; debug v2 => _8; debug v3 => _9; } } bb0: { StorageLive(_4); _4 = [copy _1, copy _1, copy _1]; _3 = &_4; _2 = copy _3 as &[T] (PointerCoercion(Unsize, Implicit)); nop; nop; goto -> bb2; } bb1: { _10 = core::panicking::panic(const "internal error: entered unreachable code") -> unwind continue; } bb2: { StorageLive(_7); _7 = &(*_2)[0 of 3]; StorageLive(_8); _8 = &(*_2)[1 of 3]; StorageLive(_9); _9 = &(*_2)[2 of 3]; StorageDead(_9); StorageDead(_8); StorageDead(_7); StorageDead(_4); return; } } ALLOC0 (size: 40, align: 1) { 0x00 │ 69 6e 74 65 72 6e 61 6c 20 65 72 72 6f 72 3a 20 │ internal error: 0x10 │ 65 6e 74 65 72 65 64 20 75 6e 72 65 61 63 68 61 │ entered unreacha 0x20 │ 62 6c 65 20 63 6f 64 65 │ ble code }