- // MIR for `unreachable_mut` before ConstProp + // MIR for `unreachable_mut` after ConstProp fn unreachable_mut() -> ! { let mut _0: !; // return place in scope 0 at $DIR/transmute.rs:+0:36: +0:37 let mut _1: !; // in scope 0 at $DIR/transmute.rs:+0:38: +3:2 let _2: &mut Never; // in scope 0 at $DIR/transmute.rs:+1:9: +1:10 let mut _3: &mut Never; // in scope 0 at $DIR/transmute.rs:+1:34: +1:52 let mut _4: !; // in scope 0 at $DIR/transmute.rs:+2:5: +2:16 scope 1 { debug x => _2; // in scope 1 at $DIR/transmute.rs:+1:9: +1:10 } scope 2 { } bb0: { StorageLive(_1); // scope 0 at $DIR/transmute.rs:+0:38: +3:2 StorageLive(_2); // scope 0 at $DIR/transmute.rs:+1:9: +1:10 StorageLive(_3); // scope 0 at $DIR/transmute.rs:+1:34: +1:52 - _3 = const 1_usize as &mut Never (Transmute); // scope 2 at $DIR/transmute.rs:+1:34: +1:52 + _3 = const {0x1 as &mut Never}; // scope 2 at $DIR/transmute.rs:+1:34: +1:52 + // mir::Constant + // + span: no-location + // + literal: Const { ty: &mut Never, val: Value(Scalar(0x0000000000000001)) } _2 = &mut (*_3); // scope 0 at $DIR/transmute.rs:+1:34: +1:52 StorageDead(_3); // scope 0 at $DIR/transmute.rs:+1:54: +1:55 StorageLive(_4); // scope 1 at $DIR/transmute.rs:+2:5: +2:16 unreachable; // scope 1 at $DIR/transmute.rs:+2:11: +2:13 } }