diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-01-23 15:54:13 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-01-23 16:18:01 -0800 |
| commit | 5cff7c093eec13405ad8f6d16019c3b11cf88eac (patch) | |
| tree | cf65405dd519723e7d6297ae657d57c81a983c05 | |
| parent | 5660b8bfb5130a6840931c63623a2aaf99775844 (diff) | |
| download | rust-5cff7c093eec13405ad8f6d16019c3b11cf88eac.tar.gz rust-5cff7c093eec13405ad8f6d16019c3b11cf88eac.zip | |
rustdoc: Prune undocumented fn args
| -rw-r--r-- | src/rustdoc/prune_undoc_pass.rs | 98 |
1 files changed, 58 insertions, 40 deletions
diff --git a/src/rustdoc/prune_undoc_pass.rs b/src/rustdoc/prune_undoc_pass.rs index dd7abf2f0ed..921b0c8a433 100644 --- a/src/rustdoc/prune_undoc_pass.rs +++ b/src/rustdoc/prune_undoc_pass.rs @@ -44,6 +44,17 @@ fn fold_fn( fold: fold::fold<ctxt>, doc: doc::fndoc ) -> doc::fndoc { + let doc = ~{ + args: vec::filter_map(doc.args) {|doc| + if option::is_some(doc.desc) { + some(doc) + } else { + none + } + } + with *doc + }; + fold.ctxt.have_docs = doc.brief != none || doc.desc != none @@ -51,6 +62,16 @@ fn fold_fn( ret doc; } +#[test] +fn should_elide_undocumented_arguments() { + let source = "#[doc = \"hey\"] fn a(b: 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_empty(doc.topmod.fns[0].args); +} + fn fold_modlist( fold: fold::fold<ctxt>, list: doc::modlist @@ -65,6 +86,35 @@ fn fold_modlist( }) } +#[test] +fn should_elide_undocumented_mods() { + let source = "mod a { }"; + let srv = astsrv::mk_srv_from_str(source); + let doc = extract::from_srv(srv, ""); + let doc = run(srv, doc); + assert vec::is_empty(*doc.topmod.mods); +} + +#[test] +fn should_not_elide_undocument_mods_with_documented_mods() { + let source = "mod a { #[doc = \"b\"] mod b { } }"; + 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.mods); +} + +#[test] +fn should_not_elide_undocument_mods_with_documented_fns() { + let source = "mod a { #[doc = \"b\"] fn b() { } }"; + 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.mods); +} + fn fold_fnlist( fold: fold::fold<ctxt>, list: doc::fnlist @@ -79,43 +129,11 @@ fn fold_fnlist( }) } -#[cfg(test)] -mod tests { - #[test] - fn should_elide_undocumented_mods() { - let source = "mod a { }"; - let srv = astsrv::mk_srv_from_str(source); - let doc = extract::from_srv(srv, ""); - let doc = run(srv, doc); - assert vec::is_empty(*doc.topmod.mods); - } - - #[test] - fn should_not_elide_undocument_mods_with_documented_mods() { - let source = "mod a { #[doc = \"b\"] mod b { } }"; - 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.mods); - } - - #[test] - fn should_not_elide_undocument_mods_with_documented_fns() { - let source = "mod a { #[doc = \"b\"] fn b() { } }"; - 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.mods); - } - - #[test] - fn should_elide_undocumented_fns() { - let source = "fn a() { }"; - let srv = astsrv::mk_srv_from_str(source); - let doc = extract::from_srv(srv, ""); - let doc = run(srv, doc); - assert vec::is_empty(*doc.topmod.fns); - } -} \ No newline at end of file +#[test] +fn should_elide_undocumented_fns() { + let source = "fn a() { }"; + let srv = astsrv::mk_srv_from_str(source); + let doc = extract::from_srv(srv, ""); + let doc = run(srv, doc); + assert vec::is_empty(*doc.topmod.fns); +} |
