- // MIR for `simple` before DataflowConstProp + // MIR for `simple` after DataflowConstProp fn simple() -> () { let mut _0: (); let _1: E; let mut _3: isize; scope 1 { debug e => _1; let _2: i32; let _4: i32; let _5: i32; scope 2 { debug x => _2; } scope 3 { debug x => _4; } scope 4 { debug x => _5; } } bb0: { StorageLive(_1); _1 = E::V1(const 0_i32); StorageLive(_2); - _3 = discriminant(_1); - switchInt(move _3) -> [0: bb3, 1: bb1, otherwise: bb2]; + _3 = const 0_isize; + switchInt(const 0_isize) -> [0: bb3, 1: bb1, otherwise: bb2]; } bb1: { StorageLive(_5); _5 = ((_1 as V2).0: i32); _2 = _5; StorageDead(_5); goto -> bb4; } bb2: { unreachable; } bb3: { StorageLive(_4); - _4 = ((_1 as V1).0: i32); - _2 = _4; + _4 = const 0_i32; + _2 = const 0_i32; StorageDead(_4); goto -> bb4; } bb4: { _0 = const (); StorageDead(_2); StorageDead(_1); return; } }