Skip to content

Commit 5751794

Browse files
committed
auto merge of #9946 : sfackler/rust/enum-doc, r=alexcrichton
Struct fields with inherited visibility were previously stripped. Closes #9899
2 parents 0b1fb46 + 590b50f commit 5751794

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/librustdoc/html/render.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,6 +1344,26 @@ fn item_enum(w: &mut io::Writer, it: &clean::Item, e: &clean::Enum) {
13441344
write!(w, "<tr><td id='variant.{name}'><code>{name}</code></td><td>",
13451345
name = variant.name.get_ref().as_slice());
13461346
document(w, variant);
1347+
match variant.inner {
1348+
clean::VariantItem(ref var) => {
1349+
match var.kind {
1350+
clean::StructVariant(ref s) => {
1351+
write!(w, "<h3 class='fields'>Fields</h3>\n<table>");
1352+
for field in s.fields.iter() {
1353+
write!(w, "<tr><td id='variant.{v}.field.{f}'>\
1354+
<code>{f}</code></td><td>",
1355+
v = variant.name.get_ref().as_slice(),
1356+
f = field.name.get_ref().as_slice());
1357+
document(w, field);
1358+
write!(w, "</td></tr>");
1359+
}
1360+
write!(w, "</table>");
1361+
}
1362+
_ => ()
1363+
}
1364+
}
1365+
_ => ()
1366+
}
13471367
write!(w, "</td></tr>");
13481368
}
13491369
write!(w, "</table>");

src/librustdoc/passes.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,14 @@ impl<'self> fold::DocFolder for Stripper<'self> {
135135
}
136136
}
137137

138-
clean::ViewItemItem(*) | clean::StructFieldItem(*) => {
138+
clean::ViewItemItem(*) => {
139139
if i.visibility != Some(ast::public) {
140+
return None
141+
}
142+
}
143+
144+
clean::StructFieldItem(*) => {
145+
if i.visibility == Some(ast::private) {
140146
return None;
141147
}
142148
}

0 commit comments

Comments
 (0)