diff --git a/compiler/rustc_mir_build/src/build/matches/test.rs b/compiler/rustc_mir_build/src/build/matches/test.rs index a97d0de27e3..3712b8fb95b 100644 --- a/compiler/rustc_mir_build/src/build/matches/test.rs +++ b/compiler/rustc_mir_build/src/build/matches/test.rs @@ -575,10 +575,6 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { fully_matched = true; Some(variant_index.as_usize()) } - (&TestKind::Switch { .. }, _) => { - fully_matched = false; - None - } // If we are performing a switch over integers, then this informs integer // equality, but nothing else. @@ -603,10 +599,6 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { options.len() }) } - (&TestKind::SwitchInt { .. }, _) => { - fully_matched = false; - None - } ( &TestKind::Len { len: test_len, op: BinOp::Eq }, @@ -673,10 +665,6 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { } } } - (TestKind::Len { .. }, _) => { - fully_matched = false; - None - } (TestKind::Range(test), &TestCase::Range(pat)) => { if test.as_ref() == pat { @@ -699,10 +687,6 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { None } } - (&TestKind::Range { .. }, _) => { - fully_matched = false; - None - } // FIXME(#29623): return `Some(1)` when the values are different. (TestKind::Eq { value: test_val, .. }, TestCase::Constant { value: case_val }) @@ -711,7 +695,15 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { fully_matched = true; Some(0) } - (TestKind::Eq { .. }, _) => { + + ( + TestKind::Switch { .. } + | TestKind::SwitchInt { .. } + | TestKind::Len { .. } + | TestKind::Range { .. } + | TestKind::Eq { .. }, + _, + ) => { fully_matched = false; None }