diff --git a/src/rustdoc/attr_parser.rs b/src/rustdoc/attr_parser.rs index cf29791fd5f..fc520ee4d3a 100644 --- a/src/rustdoc/attr_parser.rs +++ b/src/rustdoc/attr_parser.rs @@ -112,7 +112,10 @@ fn parse_fn_( name: name, brief: _brief, desc: desc, - return: return, + return: some({ + desc: return, + ty: none, + }), args: argdocs } } @@ -176,7 +179,7 @@ mod tests { let source = "#[doc(return = \"return value\")]"; let attrs = parse_attributes(source); let doc = parse_fn("f", 0, attrs); - assert doc.return == some("return value"); + assert option::get(doc.return).desc == some("return value"); } #[test] diff --git a/src/rustdoc/doc.rs b/src/rustdoc/doc.rs index a527dbb4521..51db29d3526 100644 --- a/src/rustdoc/doc.rs +++ b/src/rustdoc/doc.rs @@ -15,10 +15,15 @@ type fndoc = ~{ name: str, brief: str, desc: option::t, - return: option::t, + return: option, args: [(str, str)] }; +type retdoc = { + desc: option, + ty: option +}; + // Just to break the structural recursive types tag modlist = [moddoc]; tag fnlist = [fndoc]; diff --git a/src/rustdoc/gen.rs b/src/rustdoc/gen.rs index a4e899fce8f..81945969e16 100644 --- a/src/rustdoc/gen.rs +++ b/src/rustdoc/gen.rs @@ -100,12 +100,12 @@ fn write_fndoc(ctxt: ctxt, ident: str, doc: doc::fndoc, decl: ast::fn_decl) { } for (arg, desc) in doc.args { ctxt.w.write_str("### Argument `" + arg + "`: "); - ctxt.w.write_str(desc); + ctxt.w.write_str(desc) } ctxt.w.write_line("### Returns `" + pprust::ty_to_str(decl.output) + "`"); alt doc.return { - some(_r) { ctxt.w.write_line(_r); } - none. { } + some({desc: some(d), _}) { ctxt.w.write_line(d); } + _ { } } }