// This test verifies that the MIR we output using the `matches!()` macro is close // to the MIR for an `if let` branch. pub enum Foo { A, B, C, D, E, F, } // EMIT_MIR matches_macro.issue_77355_opt.PreCodegen.after.mir fn issue_77355_opt(num: Foo) -> u64 { // CHECK-LABEL: fn issue_77355_opt( // CHECK: switchInt({{.*}}) -> [1: bb1, 2: bb1, otherwise: bb2]; // CHECK: bb1: { // CHECK-NEXT: _0 = const 23_u64; // CHECK-NEXT: return; // CHECK: bb2: { // CHECK-NEXT: _0 = const 42_u64; // CHECK-NEXT: return; if matches!(num, Foo::B | Foo::C) { 23 } else { 42 } } fn main() { issue_77355_opt(Foo::A); }