1
Fork 0

rustdoc: Convert fn return type to retdoc record

This commit is contained in:
Brian Anderson 2012-01-16 14:02:46 -08:00
parent 63dcc64275
commit e77b8db707
3 changed files with 14 additions and 6 deletions

View file

@ -112,7 +112,10 @@ fn parse_fn_(
name: name, name: name,
brief: _brief, brief: _brief,
desc: desc, desc: desc,
return: return, return: some({
desc: return,
ty: none,
}),
args: argdocs } args: argdocs }
} }
@ -176,7 +179,7 @@ mod tests {
let source = "#[doc(return = \"return value\")]"; let source = "#[doc(return = \"return value\")]";
let attrs = parse_attributes(source); let attrs = parse_attributes(source);
let doc = parse_fn("f", 0, attrs); let doc = parse_fn("f", 0, attrs);
assert doc.return == some("return value"); assert option::get(doc.return).desc == some("return value");
} }
#[test] #[test]

View file

@ -15,10 +15,15 @@ type fndoc = ~{
name: str, name: str,
brief: str, brief: str,
desc: option::t<str>, desc: option::t<str>,
return: option::t<str>, return: option<retdoc>,
args: [(str, str)] args: [(str, str)]
}; };
type retdoc = {
desc: option<str>,
ty: option<str>
};
// Just to break the structural recursive types // Just to break the structural recursive types
tag modlist = [moddoc]; tag modlist = [moddoc];
tag fnlist = [fndoc]; tag fnlist = [fndoc];

View file

@ -100,12 +100,12 @@ fn write_fndoc(ctxt: ctxt, ident: str, doc: doc::fndoc, decl: ast::fn_decl) {
} }
for (arg, desc) in doc.args { for (arg, desc) in doc.args {
ctxt.w.write_str("### Argument `" + arg + "`: "); 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) + "`"); ctxt.w.write_line("### Returns `" + pprust::ty_to_str(decl.output) + "`");
alt doc.return { alt doc.return {
some(_r) { ctxt.w.write_line(_r); } some({desc: some(d), _}) { ctxt.w.write_line(d); }
none. { } _ { }
} }
} }