diff options
| -rw-r--r-- | src/rustdoc/prune_undoc_pass.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/rustdoc/prune_undoc_pass.rs b/src/rustdoc/prune_undoc_pass.rs index 921b0c8a433..029738da8db 100644 --- a/src/rustdoc/prune_undoc_pass.rs +++ b/src/rustdoc/prune_undoc_pass.rs @@ -44,9 +44,11 @@ fn fold_fn( fold: fold::fold<ctxt>, doc: doc::fndoc ) -> doc::fndoc { + let have_arg_docs = false; let doc = ~{ args: vec::filter_map(doc.args) {|doc| if option::is_some(doc.desc) { + have_arg_docs = true; some(doc) } else { none @@ -58,6 +60,7 @@ fn fold_fn( fold.ctxt.have_docs = doc.brief != none || doc.desc != none + || have_arg_docs || doc.return.desc != none; ret doc; } @@ -72,6 +75,16 @@ fn should_elide_undocumented_arguments() { assert vec::is_empty(doc.topmod.fns[0].args); } +#[test] +fn should_not_elide_fns_with_documented_arguments() { + let source = "#[doc(args(a = \"b\"))] fn a(a: int) { }"; + let srv = astsrv::mk_srv_from_str(source); + let doc = extract::from_srv(srv, ""); + let doc = attr_pass::mk_pass()(srv, doc); + let doc = run(srv, doc); + assert vec::is_not_empty(*doc.topmod.fns); +} + fn fold_modlist( fold: fold::fold<ctxt>, list: doc::modlist |
