- // 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 x1 => _4; } scope 4 { debug x2 => _5; } } bb0: { StorageLive(_1); - _1 = E::V1(const 0_i32); + _1 = const E::V1(0_i32); StorageLive(_2); - _3 = discriminant(_1); - switchInt(move _3) -> [0: bb3, 1: bb2, otherwise: bb1]; + _3 = const 0_isize; + switchInt(const 0_isize) -> [0: bb3, 1: bb2, otherwise: bb1]; } bb1: { unreachable; } bb2: { StorageLive(_5); _5 = copy ((_1 as V2).0: i32); _2 = copy _5; StorageDead(_5); goto -> bb4; } bb3: { StorageLive(_4); - _4 = copy ((_1 as V1).0: i32); - _2 = copy _4; + _4 = const 0_i32; + _2 = const 0_i32; StorageDead(_4); goto -> bb4; } bb4: { _0 = const (); StorageDead(_2); StorageDead(_1); return; } } + + ALLOC0 (size: 8, align: 4) { .. }