@@ -466,34 +466,29 @@ fn check_exhaustive<'p, 'tcx>(
466
466
} ;
467
467
// In the case of an empty match, replace the '`_` not covered' diagnostic with something more
468
468
// informative.
469
+ let mut err;
469
470
if is_empty_match && !non_empty_enum {
470
- let mut err = create_e0004 (
471
+ err = create_e0004 (
471
472
cx. tcx . sess ,
472
473
sp,
473
474
format ! ( "non-exhaustive patterns: type `{}` is non-empty" , scrut_ty) ,
474
475
) ;
475
- err. help (
476
- "ensure that all possible cases are being handled, \
477
- possibly by adding wildcards or more match arms",
476
+ } else {
477
+ let joined_patterns = joined_uncovered_patterns ( & witnesses) ;
478
+ err = create_e0004 (
479
+ cx. tcx . sess ,
480
+ sp,
481
+ format ! ( "non-exhaustive patterns: {} not covered" , joined_patterns) ,
478
482
) ;
479
- adt_defined_here ( cx, & mut err, scrut_ty, & [ ] ) ;
480
- err. emit ( ) ;
481
- return ;
482
- }
483
+ err. span_label ( sp, pattern_not_covered_label ( & witnesses, & joined_patterns) ) ;
484
+ } ;
483
485
484
- let joined_patterns = joined_uncovered_patterns ( & witnesses) ;
485
- let mut err = create_e0004 (
486
- cx. tcx . sess ,
487
- sp,
488
- format ! ( "non-exhaustive patterns: {} not covered" , joined_patterns) ,
489
- ) ;
490
- err. span_label ( sp, pattern_not_covered_label ( & witnesses, & joined_patterns) ) ;
491
486
adt_defined_here ( cx, & mut err, scrut_ty, & witnesses) ;
492
487
err. help (
493
488
"ensure that all possible cases are being handled, \
494
489
possibly by adding wildcards or more match arms",
495
- )
496
- . emit ( ) ;
490
+ ) ;
491
+ err . emit ( ) ;
497
492
}
498
493
499
494
fn joined_uncovered_patterns ( witnesses : & [ super :: Pat < ' _ > ] ) -> String {
0 commit comments