about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-23 16:03:15 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-23 16:18:01 -0800
commitfa3368bc71611f071489a3a5183bd572bc6f4022 (patch)
treecab5648186c1206d78999379dcb1323c4f01b8e0
parenta7d3544d10e1fd44fd3e3d300e7c56917ed4a305 (diff)
downloadrust-fa3368bc71611f071489a3a5183bd572bc6f4022.tar.gz
rust-fa3368bc71611f071489a3a5183bd572bc6f4022.zip
rustdoc: Prune undocumented return values
-rw-r--r--src/rustdoc/prune_undoc_pass.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/rustdoc/prune_undoc_pass.rs b/src/rustdoc/prune_undoc_pass.rs
index 029738da8db..433ed1ff839 100644
--- a/src/rustdoc/prune_undoc_pass.rs
+++ b/src/rustdoc/prune_undoc_pass.rs
@@ -53,6 +53,14 @@ fn fold_fn(
             } else {
                 none
             }
+        },
+        return: {
+            ty: if option::is_some(doc.return.desc) {
+                doc.return.ty
+            } else {
+                none
+            }
+            with doc.return
         }
         with *doc
     };
@@ -85,6 +93,17 @@ fn should_not_elide_fns_with_documented_arguments() {
     assert vec::is_not_empty(*doc.topmod.fns);
 }
 
+#[test]
+fn should_elide_undocumented_return_values() {
+    let source = "#[doc = \"fonz\"] 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 doc = attr_pass::mk_pass()(srv, doc);
+    let doc = run(srv, doc);
+    assert doc.topmod.fns[0].return.ty == none;
+}
+
 fn fold_modlist(
     fold: fold::fold<ctxt>,
     list: doc::modlist