Skip to content

Commit d505f70

Browse files
committed
rustdoc: Stop ignoring dox on fields/variants
This is progress towards #9611
1 parent fb25985 commit d505f70

File tree

1 file changed

+34
-11
lines changed

1 file changed

+34
-11
lines changed

src/librustdoc/html/render.rs

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1081,6 +1081,20 @@ fn item_struct(w: &mut io::Writer, it: &clean::Item, s: &clean::Struct) {
10811081
write!(w, "</pre>");
10821082

10831083
document(w, it);
1084+
match s.struct_type {
1085+
doctree::Plain => {
1086+
write!(w, "<h2 class='fields'>Fields</h2>\n<table>");
1087+
for field in s.fields.iter() {
1088+
write!(w, "<tr><td id='structfield.{name}'>\
1089+
<code>{name}</code></td><td>",
1090+
name = field.name.get_ref().as_slice());
1091+
document(w, field);
1092+
write!(w, "</td></tr>");
1093+
}
1094+
write!(w, "</table>");
1095+
}
1096+
_ => {}
1097+
}
10841098
render_methods(w, it);
10851099
}
10861100

@@ -1094,36 +1108,46 @@ fn item_enum(w: &mut io::Writer, it: &clean::Item, e: &clean::Enum) {
10941108
} else {
10951109
write!(w, " \\{\n");
10961110
for v in e.variants.iter() {
1097-
let name = format!("<a name='variant.{0}'>{0}</a>",
1098-
v.name.get_ref().as_slice());
1111+
write!(w, " ");
1112+
let name = v.name.get_ref().as_slice();
10991113
match v.inner {
11001114
clean::VariantItem(ref var) => {
11011115
match var.kind {
1102-
clean::CLikeVariant => write!(w, " {},\n", name),
1116+
clean::CLikeVariant => write!(w, "{}", name),
11031117
clean::TupleVariant(ref tys) => {
1104-
write!(w, " {}(", name);
1118+
write!(w, "{}(", name);
11051119
for (i, ty) in tys.iter().enumerate() {
11061120
if i > 0 { write!(w, ", ") }
11071121
write!(w, "{}", *ty);
11081122
}
1109-
write!(w, "),\n");
1123+
write!(w, ")");
11101124
}
11111125
clean::StructVariant(ref s) => {
1112-
write!(w, " ");
11131126
render_struct(w, v, None, s.struct_type, s.fields,
11141127
" ", false);
1115-
write!(w, ",\n");
11161128
}
11171129
}
11181130
}
11191131
_ => unreachable!()
11201132
}
1133+
write!(w, ",\n");
11211134
}
11221135
write!(w, "\\}");
11231136
}
11241137
write!(w, "</pre>");
11251138

11261139
document(w, it);
1140+
if e.variants.len() > 0 {
1141+
write!(w, "<h2 class='variants'>Variants</h2>\n<table>");
1142+
for variant in e.variants.iter() {
1143+
write!(w, "<tr><td id='variant.{name}'><code>{name}</code></td><td>",
1144+
name = variant.name.get_ref().as_slice());
1145+
document(w, variant);
1146+
write!(w, "</td></tr>");
1147+
}
1148+
write!(w, "</table>");
1149+
1150+
}
11271151
render_methods(w, it);
11281152
}
11291153

@@ -1147,12 +1171,11 @@ fn render_struct(w: &mut io::Writer, it: &clean::Item,
11471171
for field in fields.iter() {
11481172
match field.inner {
11491173
clean::StructFieldItem(ref ty) => {
1150-
write!(w, " {}<a name='structfield.{name}'>{name}</a>: \
1151-
{},\n{}",
1174+
write!(w, " {}{}: {},\n{}",
11521175
VisSpace(field.visibility),
1176+
field.name.get_ref().as_slice(),
11531177
ty.type_,
1154-
tab,
1155-
name = field.name.get_ref().as_slice());
1178+
tab);
11561179
}
11571180
_ => unreachable!()
11581181
}

0 commit comments

Comments
 (0)