- // MIR for `exhaustive_match` before MatchBranchSimplification + // MIR for `exhaustive_match` after MatchBranchSimplification fn exhaustive_match(_1: E) -> u8 { debug e => _1; let mut _0: u8; let mut _2: isize; + let mut _3: isize; bb0: { _2 = discriminant(_1); - switchInt(move _2) -> [0: bb3, 1: bb2, otherwise: bb1]; - } - - bb1: { - unreachable; - } - - bb2: { - _0 = const 1_u8; - goto -> bb4; - } - - bb3: { - _0 = const 0_u8; - goto -> bb4; - } - - bb4: { + StorageLive(_3); + _3 = move _2; + _0 = copy _3 as u8 (IntToInt); + StorageDead(_3); return; } }