@@ -1096,7 +1096,10 @@ impl Clean<Item> for hir::TraitItem<'_> {
10961096 AssocTypeItem ( bounds. clean ( cx) , default. clean ( cx) )
10971097 }
10981098 } ;
1099- Item :: from_def_id_and_parts ( local_did, Some ( self . ident . name ) , inner, cx)
1099+ let what_rustc_thinks =
1100+ Item :: from_def_id_and_parts ( local_did, Some ( self . ident . name ) , inner, cx) ;
1101+ // Trait items always inherit the trait's visibility -- we don't want to show `pub`.
1102+ Item { visibility : Inherited , ..what_rustc_thinks }
11001103 } )
11011104 }
11021105}
@@ -1124,7 +1127,21 @@ impl Clean<Item> for hir::ImplItem<'_> {
11241127 TypedefItem ( Typedef { type_, generics : Generics :: default ( ) , item_type } , true )
11251128 }
11261129 } ;
1127- Item :: from_def_id_and_parts ( local_did, Some ( self . ident . name ) , inner, cx)
1130+
1131+ let what_rustc_thinks =
1132+ Item :: from_def_id_and_parts ( local_did, Some ( self . ident . name ) , inner, cx) ;
1133+ let parent_item = cx. tcx . hir ( ) . expect_item ( cx. tcx . hir ( ) . get_parent_item ( self . hir_id ) ) ;
1134+ if let hir:: ItemKind :: Impl { of_trait, .. } = & parent_item. kind {
1135+ if of_trait. is_some ( ) {
1136+ // Trait impl items always inherit the impl's visibility --
1137+ // we don't want to show `pub`.
1138+ Item { visibility : Inherited , ..what_rustc_thinks }
1139+ } else {
1140+ what_rustc_thinks
1141+ }
1142+ } else {
1143+ panic ! ( "found impl item with non-impl parent {:?}" , parent_item) ;
1144+ }
11281145 } )
11291146 }
11301147}
0 commit comments