| 
1 |  | -use super::usefulness::Usefulness::*;  | 
2 | 1 | use super::usefulness::{  | 
3 |  | -    compute_match_usefulness, expand_pattern, MatchArm, MatchCheckCtxt, UsefulnessReport,  | 
 | 2 | +    compute_match_usefulness, expand_pattern, MatchArm, MatchCheckCtxt, Reachability,  | 
 | 3 | +    UsefulnessReport,  | 
4 | 4 | };  | 
5 | 5 | use super::{PatCtxt, PatKind, PatternError};  | 
6 | 6 | 
 
  | 
@@ -398,10 +398,11 @@ fn report_arm_reachability<'p, 'tcx>(  | 
398 | 398 |     report: &UsefulnessReport<'p, 'tcx>,  | 
399 | 399 |     source: hir::MatchSource,  | 
400 | 400 | ) {  | 
 | 401 | +    use Reachability::*;  | 
401 | 402 |     let mut catchall = None;  | 
402 | 403 |     for (arm_index, (arm, is_useful)) in report.arm_usefulness.iter().enumerate() {  | 
403 | 404 |         match is_useful {  | 
404 |  | -            NotUseful => {  | 
 | 405 | +            Unreachable => {  | 
405 | 406 |                 match source {  | 
406 | 407 |                     hir::MatchSource::WhileDesugar => bug!(),  | 
407 | 408 | 
 
  | 
@@ -430,17 +431,16 @@ fn report_arm_reachability<'p, 'tcx>(  | 
430 | 431 |                     hir::MatchSource::AwaitDesugar | hir::MatchSource::TryDesugar => {}  | 
431 | 432 |                 }  | 
432 | 433 |             }  | 
433 |  | -            Useful(unreachables) if unreachables.is_empty() => {}  | 
 | 434 | +            Reachable(unreachables) if unreachables.is_empty() => {}  | 
434 | 435 |             // The arm is reachable, but contains unreachable subpatterns (from or-patterns).  | 
435 |  | -            Useful(unreachables) => {  | 
436 |  | -                let mut unreachables: Vec<_> = unreachables.iter().collect();  | 
 | 436 | +            Reachable(unreachables) => {  | 
 | 437 | +                let mut unreachables = unreachables.clone();  | 
437 | 438 |                 // Emit lints in the order in which they occur in the file.  | 
438 | 439 |                 unreachables.sort_unstable();  | 
439 | 440 |                 for span in unreachables {  | 
440 | 441 |                     unreachable_pattern(cx.tcx, span, arm.hir_id, None);  | 
441 | 442 |                 }  | 
442 | 443 |             }  | 
443 |  | -            UsefulWithWitness(_) => bug!(),  | 
444 | 444 |         }  | 
445 | 445 |         if !arm.has_guard && catchall.is_none() && pat_is_catchall(arm.pat) {  | 
446 | 446 |             catchall = Some(arm.pat.span);  | 
 | 
0 commit comments