diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2013-09-30 11:44:25 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2013-09-30 12:32:04 -0700 |
| commit | a3ccbdc90472345bc96fcb3142631a3d75ffb1ab (patch) | |
| tree | 5c73223c50315b949cf25b380fe47c9f1fe13600 /src | |
| parent | 8174618a05c44a9b90806aa7b848cb9b7ab62d25 (diff) | |
| download | rust-a3ccbdc90472345bc96fcb3142631a3d75ffb1ab.tar.gz rust-a3ccbdc90472345bc96fcb3142631a3d75ffb1ab.zip | |
rustdoc: Generate valid code for struct-variants
Closes #9587
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/html/render.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 4702cb0f73d..4ed91437628 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -1050,7 +1050,7 @@ fn render_method(w: &mut io::Writer, meth: &clean::Item, withlink: bool) { fn item_struct(w: &mut io::Writer, it: &clean::Item, s: &clean::Struct) { write!(w, "<pre class='struct'>"); - render_struct(w, it, Some(&s.generics), s.struct_type, s.fields, ""); + render_struct(w, it, Some(&s.generics), s.struct_type, s.fields, "", true); write!(w, "</pre>"); document(w, it); @@ -1082,8 +1082,10 @@ fn item_enum(w: &mut io::Writer, it: &clean::Item, e: &clean::Enum) { write!(w, "),\n"); } clean::StructVariant(ref s) => { + write!(w, " "); render_struct(w, v, None, s.struct_type, s.fields, - " "); + " ", false); + write!(w, ",\n"); } } } @@ -1102,9 +1104,11 @@ fn render_struct(w: &mut io::Writer, it: &clean::Item, g: Option<&clean::Generics>, ty: doctree::StructType, fields: &[clean::Item], - tab: &str) { - write!(w, "{}struct {}", + tab: &str, + structhead: bool) { + write!(w, "{}{}{}", VisSpace(it.visibility), + if structhead {"struct "} else {""}, it.name.get_ref().as_slice()); match g { Some(g) => write!(w, "{}", *g), @@ -1112,7 +1116,7 @@ fn render_struct(w: &mut io::Writer, it: &clean::Item, } match ty { doctree::Plain => { - write!(w, " \\{\n"); + write!(w, " \\{\n{}", tab); for field in fields.iter() { match field.inner { clean::StructFieldItem(ref ty) => { |
