about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-23 15:54:13 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-23 16:18:01 -0800
commit5cff7c093eec13405ad8f6d16019c3b11cf88eac (patch)
treecf65405dd519723e7d6297ae657d57c81a983c05
parent5660b8bfb5130a6840931c63623a2aaf99775844 (diff)
downloadrust-5cff7c093eec13405ad8f6d16019c3b11cf88eac.tar.gz
rust-5cff7c093eec13405ad8f6d16019c3b11cf88eac.zip
rustdoc: Prune undocumented fn args
-rw-r--r--src/rustdoc/prune_undoc_pass.rs98
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);
+}