@@ -1812,32 +1812,25 @@ fn is_field_vis_inherited(tcx: TyCtxt<'_>, def_id: DefId) -> bool {
18121812 }
18131813}
18141814
1815- impl < ' tcx > Clean < ' tcx , Visibility > for ty:: Visibility {
1816- fn clean ( & self , _cx : & mut DocContext < ' _ > ) -> Visibility {
1817- match * self {
1818- ty:: Visibility :: Public => Visibility :: Public ,
1819- // NOTE: this is not quite right: `ty` uses `Invisible` to mean 'private',
1820- // while rustdoc really does mean inherited. That means that for enum variants, such as
1821- // `pub enum E { V }`, `V` will be marked as `Public` by `ty`, but as `Inherited` by rustdoc.
1822- // Various parts of clean override `tcx.visibility` explicitly to make sure this distinction is captured.
1823- ty:: Visibility :: Invisible => Visibility :: Inherited ,
1824- ty:: Visibility :: Restricted ( module) => Visibility :: Restricted ( module) ,
1825- }
1826- }
1827- }
1828-
1829- impl < ' tcx > Clean < ' tcx , VariantStruct > for rustc_hir:: VariantData < ' tcx > {
1830- fn clean ( & self , cx : & mut DocContext < ' tcx > ) -> VariantStruct {
1831- VariantStruct {
1832- struct_type : CtorKind :: from_hir ( self ) ,
1833- fields : self . fields ( ) . iter ( ) . map ( |x| clean_field ( x, cx) ) . collect ( ) ,
1834- }
1815+ pub ( crate ) fn clean_visibility ( vis : ty:: Visibility ) -> Visibility {
1816+ match vis {
1817+ ty:: Visibility :: Public => Visibility :: Public ,
1818+ // NOTE: this is not quite right: `ty` uses `Invisible` to mean 'private',
1819+ // while rustdoc really does mean inherited. That means that for enum variants, such as
1820+ // `pub enum E { V }`, `V` will be marked as `Public` by `ty`, but as `Inherited` by rustdoc.
1821+ // Various parts of clean override `tcx.visibility` explicitly to make sure this distinction is captured.
1822+ ty:: Visibility :: Invisible => Visibility :: Inherited ,
1823+ ty:: Visibility :: Restricted ( module) => Visibility :: Restricted ( module) ,
18351824 }
18361825}
18371826
1838- impl < ' tcx > Clean < ' tcx , Vec < Item > > for hir:: VariantData < ' tcx > {
1839- fn clean ( & self , cx : & mut DocContext < ' tcx > ) -> Vec < Item > {
1840- self . fields ( ) . iter ( ) . map ( |x| clean_field ( x, cx) ) . collect ( )
1827+ fn clean_variant_data < ' tcx > (
1828+ variant : & hir:: VariantData < ' tcx > ,
1829+ cx : & mut DocContext < ' tcx > ,
1830+ ) -> VariantStruct {
1831+ VariantStruct {
1832+ struct_type : CtorKind :: from_hir ( variant) ,
1833+ fields : variant. fields ( ) . iter ( ) . map ( |x| clean_field ( x, cx) ) . collect ( ) ,
18411834 }
18421835}
18431836
@@ -1863,8 +1856,10 @@ impl<'tcx> Clean<'tcx, Item> for ty::VariantDef {
18631856impl < ' tcx > Clean < ' tcx , Variant > for hir:: VariantData < ' tcx > {
18641857 fn clean ( & self , cx : & mut DocContext < ' tcx > ) -> Variant {
18651858 match self {
1866- hir:: VariantData :: Struct ( ..) => Variant :: Struct ( self . clean ( cx) ) ,
1867- hir:: VariantData :: Tuple ( ..) => Variant :: Tuple ( self . clean ( cx) ) ,
1859+ hir:: VariantData :: Struct ( ..) => Variant :: Struct ( clean_variant_data ( self , cx) ) ,
1860+ hir:: VariantData :: Tuple ( ..) => {
1861+ Variant :: Tuple ( self . fields ( ) . iter ( ) . map ( |x| clean_field ( x, cx) ) . collect ( ) )
1862+ }
18681863 hir:: VariantData :: Unit ( ..) => Variant :: CLike ,
18691864 }
18701865 }
@@ -1983,7 +1978,7 @@ fn clean_maybe_renamed_item<'tcx>(
19831978 clean_fn_or_proc_macro ( item, sig, generics, body_id, & mut name, cx)
19841979 }
19851980 ItemKind :: Macro ( ref macro_def, _) => {
1986- let ty_vis = cx. tcx . visibility ( def_id) . clean ( cx ) ;
1981+ let ty_vis = clean_visibility ( cx. tcx . visibility ( def_id) ) ;
19871982 MacroItem ( Macro {
19881983 source : display_macro_source ( cx, name, macro_def, def_id, ty_vis) ,
19891984 } )
@@ -2112,7 +2107,7 @@ fn clean_extern_crate<'tcx>(
21122107 name: Some ( name) ,
21132108 attrs: Box :: new( attrs. clean( cx) ) ,
21142109 item_id: crate_def_id. into( ) ,
2115- visibility: ty_vis . clean ( cx ) ,
2110+ visibility: clean_visibility ( ty_vis ) ,
21162111 kind: box ExternCrateItem { src: orig_name } ,
21172112 cfg: attrs. cfg( cx. tcx, & cx. cache. hidden_cfg) ,
21182113 } ]
0 commit comments