@@ -683,34 +683,33 @@ impl<'tcx> DeadVisitor<'tcx> {
683683 let descr = self . tcx . def_kind ( def_id) . descr ( def_id. to_def_id ( ) ) ;
684684 let mut err = lint. build ( & format ! ( "{} is never {}: `{}`" , descr, participle, name) ) ;
685685 let hir = self . tcx . hir ( ) ;
686- if let Some ( encl_scope) = hir. get_enclosing_scope ( id) {
687- if let Some ( encl_def_id) = hir. opt_local_def_id ( encl_scope) {
688- if let Some ( ign_traits) = self . ignored_derived_traits . get ( & encl_def_id) {
689- let traits_str = ign_traits
690- . iter ( )
691- . map ( |( trait_id, _) | format ! ( "`{}`" , self . tcx. item_name( * trait_id) ) )
692- . collect :: < Vec < _ > > ( )
693- . join ( " and " ) ;
694- let plural_s = pluralize ! ( ign_traits. len( ) ) ;
695- let article = if ign_traits. len ( ) > 1 { "" } else { "a " } ;
696- let is_are = if ign_traits. len ( ) > 1 { "these are" } else { "this is" } ;
697- let msg = format ! (
698- "`{}` has {}derived impl{} for the trait{} {}, but {} \
699- intentionally ignored during dead code analysis",
700- self . tcx. item_name( encl_def_id. to_def_id( ) ) ,
701- article,
702- plural_s,
703- plural_s,
704- traits_str,
705- is_are
706- ) ;
707- let multispan = ign_traits
708- . iter ( )
709- . map ( |( _, impl_id) | self . tcx . def_span ( * impl_id) )
710- . collect :: < Vec < _ > > ( ) ;
711- err. span_note ( multispan, & msg) ;
712- }
713- }
686+ if let Some ( encl_scope) = hir. get_enclosing_scope ( id)
687+ && let Some ( encl_def_id) = hir. opt_local_def_id ( encl_scope)
688+ && let Some ( ign_traits) = self . ignored_derived_traits . get ( & encl_def_id)
689+ {
690+ let traits_str = ign_traits
691+ . iter ( )
692+ . map ( |( trait_id, _) | format ! ( "`{}`" , self . tcx. item_name( * trait_id) ) )
693+ . collect :: < Vec < _ > > ( )
694+ . join ( " and " ) ;
695+ let plural_s = pluralize ! ( ign_traits. len( ) ) ;
696+ let article = if ign_traits. len ( ) > 1 { "" } else { "a " } ;
697+ let is_are = if ign_traits. len ( ) > 1 { "these are" } else { "this is" } ;
698+ let msg = format ! (
699+ "`{}` has {}derived impl{} for the trait{} {}, but {} \
700+ intentionally ignored during dead code analysis",
701+ self . tcx. item_name( encl_def_id. to_def_id( ) ) ,
702+ article,
703+ plural_s,
704+ plural_s,
705+ traits_str,
706+ is_are
707+ ) ;
708+ let multispan = ign_traits
709+ . iter ( )
710+ . map ( |( _, impl_id) | self . tcx . def_span ( * impl_id) )
711+ . collect :: < Vec < _ > > ( ) ;
712+ err. span_note ( multispan, & msg) ;
714713 }
715714 err. emit ( ) ;
716715 } ) ;
0 commit comments