diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index a3200e69e3c42..6f734dfbdd56e 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -2247,18 +2247,22 @@ fn item_struct(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
}).peekable();
if let doctree::Plain = s.struct_type {
if fields.peek().is_some() {
- write!(w, "
Fields
\n")?;
+ write!(w, "Fields
\n")?;
for field in fields {
- write!(w, "
- \
- {name} | ",
+ write!(w, "- \
+
{name}",
shortty = ItemType::StructField,
stab = field.stability_class(),
name = field.name.as_ref().unwrap())?;
+ if let clean::StructFieldItem(ref ty) = field.inner {
+ write!(w, ": {} - ", ty)?;
+ } else {
+ write!(w, "
- ")?;
+ }
document(w, cx, field)?;
- write!(w, "
|
")?;
+ write!(w, "")?;
}
- write!(w, "
")?;
+ write!(w, "")?;
}
}
render_assoc_items(w, cx, it, it.def_id, AssocItemRender::All)
@@ -2336,18 +2340,22 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
}
});
write!(w, "Fields
\n
- ")?;
+ ")?;
for field in fields {
- write!(w, "\
- {f} | ",
+ write!(w, "- \
+
{f}",
shortty = ItemType::Variant,
v = variant.name.as_ref().unwrap(),
f = field.name.as_ref().unwrap())?;
+ if let clean::StructFieldItem(ref ty) = field.inner {
+ write!(w, ": {} - ", ty)?;
+ } else {
+ write!(w, "
- ")?;
+ }
document(w, cx, field)?;
- write!(w, "
|
")?;
+ write!(w, "")?;
}
- write!(w, "
")?;
+ write!(w, "")?;
}
write!(w, "")?;
render_stability_since(w, variant, it)?;
diff --git a/src/test/rustdoc/structfields.rs b/src/test/rustdoc/structfields.rs
index c4327f70728cb..86be43f47d33e 100644
--- a/src/test/rustdoc/structfields.rs
+++ b/src/test/rustdoc/structfields.rs
@@ -32,8 +32,8 @@ pub struct Bar {
// @has structfields/enum.Qux.html
pub enum Qux {
Quz {
- // @has - //pre "a: ()"
- a: (),
+ // @has - //pre "a: Option>"
+ a: Option>,
// @!has - //pre "b: ()"
#[doc(hidden)]
b: (),
@@ -42,3 +42,19 @@ pub enum Qux {
// @has - //pre "// some fields omitted"
},
}
+
+pub struct FieldDoc {
+ // @has structfields/struct.FieldDoc.html '//dt[@id="structfield.a"]' "a: i32"
+ // @has - //dd "field a"
+ /// field a
+ pub a: i32,
+}
+
+pub enum EnumFieldDoc {
+ E {
+ // @has structfields/enum.EnumFieldDoc.html '//dt[@id="variant.E.field.a"]' "a: i32"
+ // @has - //dd "field a"
+ /// field a
+ a: i32,
+ }
+}
|