diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index b81a622fcda..53c3cf3a10c 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -1344,6 +1344,26 @@ fn item_enum(w: &mut io::Writer, it: &clean::Item, e: &clean::Enum) {
write!(w, "
{name} | ",
name = variant.name.get_ref().as_slice());
document(w, variant);
+ match variant.inner {
+ clean::VariantItem(ref var) => {
+ match var.kind {
+ clean::StructVariant(ref s) => {
+ write!(w, "Fields\n");
+ for field in s.fields.iter() {
+ write!(w, "\
+ {f} | ",
+ v = variant.name.get_ref().as_slice(),
+ f = field.name.get_ref().as_slice());
+ document(w, field);
+ write!(w, " | ");
+ }
+ write!(w, " ");
+ }
+ _ => ()
+ }
+ }
+ _ => ()
+ }
write!(w, " |
");
}
write!(w, "");
diff --git a/src/librustdoc/passes.rs b/src/librustdoc/passes.rs
index aa419a90563..e11552cb08f 100644
--- a/src/librustdoc/passes.rs
+++ b/src/librustdoc/passes.rs
@@ -135,8 +135,14 @@ impl<'self> fold::DocFolder for Stripper<'self> {
}
}
- clean::ViewItemItem(*) | clean::StructFieldItem(*) => {
+ clean::ViewItemItem(*) => {
if i.visibility != Some(ast::public) {
+ return None
+ }
+ }
+
+ clean::StructFieldItem(*) => {
+ if i.visibility == Some(ast::private) {
return None;
}
}