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, ""); + } + 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, ""); 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; } }