@@ -1775,25 +1775,28 @@ impl Clean<Visibility> for hir::Visibility<'_> {
17751775 hir:: VisibilityKind :: Inherited => Visibility :: Inherited ,
17761776 hir:: VisibilityKind :: Crate ( _) => {
17771777 let krate = DefId :: local ( CRATE_DEF_INDEX ) ;
1778- Visibility :: Restricted ( krate, cx . tcx . def_path ( krate ) )
1778+ Visibility :: Restricted ( krate)
17791779 }
17801780 hir:: VisibilityKind :: Restricted { ref path, .. } => {
17811781 let path = path. clean ( cx) ;
17821782 let did = register_res ( cx, path. res ) ;
1783- Visibility :: Restricted ( did, cx . tcx . def_path ( did ) )
1783+ Visibility :: Restricted ( did)
17841784 }
17851785 }
17861786 }
17871787}
17881788
17891789impl Clean < Visibility > for ty:: Visibility {
1790- fn clean ( & self , cx : & DocContext < ' _ > ) -> Visibility {
1790+ fn clean ( & self , _cx : & DocContext < ' _ > ) -> Visibility {
17911791 match * self {
17921792 ty:: Visibility :: Public => Visibility :: Public ,
1793+ // NOTE: this is not quite right: `ty` uses `Invisible` to mean 'private',
1794+ // while rustdoc really does mean inherited. That means that for enum variants, such as
1795+ // `pub enum E { V }`, `V` will be marked as `Public` by `ty`, but as `Inherited` by rustdoc.
1796+ // This is the main reason `impl Clean for hir::Visibility` still exists; various parts of clean
1797+ // override `tcx.visibility` explicitly to make sure this distinction is captured.
17931798 ty:: Visibility :: Invisible => Visibility :: Inherited ,
1794- ty:: Visibility :: Restricted ( module) => {
1795- Visibility :: Restricted ( module, cx. tcx . def_path ( module) )
1796- }
1799+ ty:: Visibility :: Restricted ( module) => Visibility :: Restricted ( module) ,
17971800 }
17981801 }
17991802}
@@ -2303,14 +2306,14 @@ impl Clean<Item> for (&hir::MacroDef<'_>, Option<Symbol>) {
23032306 if matchers. len ( ) <= 1 {
23042307 format ! (
23052308 "{}macro {}{} {{\n ...\n }}" ,
2306- vis. print_with_space( ) ,
2309+ vis. print_with_space( cx . tcx ) ,
23072310 name,
23082311 matchers. iter( ) . map( |span| span. to_src( cx) ) . collect:: <String >( ) ,
23092312 )
23102313 } else {
23112314 format ! (
23122315 "{}macro {} {{\n {}}}" ,
2313- vis. print_with_space( ) ,
2316+ vis. print_with_space( cx . tcx ) ,
23142317 name,
23152318 matchers
23162319 . iter( )
0 commit comments