- // MIR for `adt_transmutes` before InstSimplify + // MIR for `adt_transmutes` after InstSimplify fn adt_transmutes() -> () { let mut _0: (); let _1: u8; let mut _2: std::option::Option>; let mut _4: std::num::Wrapping; let mut _6: std::num::Wrapping; let mut _8: Union32; let mut _10: Union32; let mut _12: std::mem::MaybeUninit; scope 1 { debug _a => _1; let _3: i16; scope 2 { debug _a => _3; let _5: u16; scope 3 { debug _a => _5; let _7: u32; scope 4 { debug _a => _7; let _9: i32; scope 5 { debug _a => _9; let _11: std::mem::ManuallyDrop; scope 6 { debug _a => _11; } } } } } } bb0: { StorageLive(_1); StorageLive(_2); _2 = Option::>::Some(const std::num::NonZero::::MAX); _1 = move _2 as u8 (Transmute); StorageDead(_2); StorageLive(_3); StorageLive(_4); _4 = Wrapping::(const 0_i16); - _3 = move _4 as i16 (Transmute); + _3 = move (_4.0: i16); StorageDead(_4); StorageLive(_5); StorageLive(_6); _6 = Wrapping::(const 0_i16); _5 = move _6 as u16 (Transmute); StorageDead(_6); StorageLive(_7); StorageLive(_8); _8 = Union32 { u32: const 0_i32 }; _7 = move _8 as u32 (Transmute); StorageDead(_8); StorageLive(_9); StorageLive(_10); _10 = Union32 { u32: const 0_u32 }; _9 = move _10 as i32 (Transmute); StorageDead(_10); StorageLive(_11); StorageLive(_12); _12 = MaybeUninit::::uninit() -> [return: bb1, unwind unreachable]; } bb1: { - _11 = move _12 as std::mem::ManuallyDrop (Transmute); + _11 = move (_12.1: std::mem::ManuallyDrop); StorageDead(_12); _0 = const (); StorageDead(_11); StorageDead(_9); StorageDead(_7); StorageDead(_5); StorageDead(_3); StorageDead(_1); return; } }