From df9bf1f45f462ecd4f5d2ab35f52b35119692ff2 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 19 Jan 2012 14:27:16 -0800 Subject: [PATCH] rustdoc: Attach return value descriptions to the doc tree --- src/rustdoc/attr_pass.rs | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/rustdoc/attr_pass.rs b/src/rustdoc/attr_pass.rs index ac42820bf70f..9b718aa988bc 100644 --- a/src/rustdoc/attr_pass.rs +++ b/src/rustdoc/attr_pass.rs @@ -160,10 +160,20 @@ fn fold_fn( fn merge_ret_attrs( doc: option, - _attrs: option + attrs: option ) -> option { - // FIXME - doc + alt doc { + some(doc) { + some({ + desc: attrs + with doc + }) + } + none { + // FIXME: Warning about documenting nil? + none + } + } } } @@ -185,4 +195,15 @@ fn fold_fn_should_extract_arg_attributes() { let fold = fold::default_seq_fold(srv); let doc = fold_fn(fold, doc.topmod.fns[0]); assert doc.args[0].desc == some("b"); +} + +#[test] +fn fold_fn_should_extract_return_attributes() { + let source = "#[doc(return = \"what\")] fn a() -> int { }"; + let srv = astsrv::mk_srv_from_str(source); + let doc = extract::from_srv(srv, ""); + let doc = tystr_pass::mk_pass()(srv, doc); + let fold = fold::default_seq_fold(srv); + let doc = fold_fn(fold, doc.topmod.fns[0]); + assert option::get(doc.return).desc == some("what"); } \ No newline at end of file