From 003bbcb799c147ce004c597f77853155cee8a2be Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Mon, 13 Sep 2021 15:47:24 +0100 Subject: [PATCH] Always report reachability for user-supplied patterns --- .../rustc_mir_build/src/thir/pattern/check_match.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/compiler/rustc_mir_build/src/thir/pattern/check_match.rs b/compiler/rustc_mir_build/src/thir/pattern/check_match.rs index 724ac5453154..d04d3261a266 100644 --- a/compiler/rustc_mir_build/src/thir/pattern/check_match.rs +++ b/compiler/rustc_mir_build/src/thir/pattern/check_match.rs @@ -434,14 +434,9 @@ fn check_let_reachability<'p, 'tcx>( let arms = [MatchArm { pat, hir_id: pat_id, has_guard: false }]; let report = compute_match_usefulness(&cx, &arms, pat_id, pat.ty); - match let_source(cx.tcx, pat_id) { - LetSource::IfLet | LetSource::WhileLet | LetSource::IfLetGuard => { - report_arm_reachability(&cx, &report, |arm_span, arm_hir_id, _| { - unreachable_pattern(cx.tcx, arm_span, arm_hir_id, None) - }); - } - _ => {} - } + report_arm_reachability(&cx, &report, |arm_span, arm_hir_id, _| { + unreachable_pattern(cx.tcx, arm_span, arm_hir_id, None) + }); if report.non_exhaustiveness_witnesses.is_empty() { // The match is exhaustive, i.e. the `if let` pattern is irrefutable.