@@ -466,34 +466,29 @@ fn check_exhaustive<'p, 'tcx>(
466466 } ;
467467 // In the case of an empty match, replace the '`_` not covered' diagnostic with something more
468468 // informative.
469+ let mut err;
469470 if is_empty_match && !non_empty_enum {
470- let mut err = create_e0004 (
471+ err = create_e0004 (
471472 cx. tcx . sess ,
472473 sp,
473474 format ! ( "non-exhaustive patterns: type `{}` is non-empty" , scrut_ty) ,
474475 ) ;
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) ,
478482 ) ;
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+ } ;
483485
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) ) ;
491486 adt_defined_here ( cx, & mut err, scrut_ty, & witnesses) ;
492487 err. help (
493488 "ensure that all possible cases are being handled, \
494489 possibly by adding wildcards or more match arms",
495- )
496- . emit ( ) ;
490+ ) ;
491+ err . emit ( ) ;
497492}
498493
499494fn joined_uncovered_patterns ( witnesses : & [ super :: Pat < ' _ > ] ) -> String {
0 commit comments