about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-24 18:08:48 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-24 18:08:48 -0800
commita66bff6e81a9c5c0b54f8a50c7b4730f997c4af5 (patch)
treeda42d561189bbaa4b2c211dc5c72f1e8886487d8
parentefc067952dc907f3f9646d4effc1f3891e582557 (diff)
downloadrust-a66bff6e81a9c5c0b54f8a50c7b4730f997c4af5.tar.gz
rust-a66bff6e81a9c5c0b54f8a50c7b4730f997c4af5.zip
rustdoc: Don't prune functions with documented failure conditions
-rw-r--r--src/rustdoc/prune_undoc_pass.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/rustdoc/prune_undoc_pass.rs b/src/rustdoc/prune_undoc_pass.rs
index d447d4e472d..4256d08c30a 100644
--- a/src/rustdoc/prune_undoc_pass.rs
+++ b/src/rustdoc/prune_undoc_pass.rs
@@ -71,7 +71,8 @@ fn fold_fn(
         doc.brief != none
         || doc.desc != none
         || have_arg_docs
-        || doc.return.desc != none;
+        || doc.return.desc != none
+        || doc.failure != none;
     ret doc;
 }
 
@@ -106,6 +107,16 @@ fn should_elide_undocumented_return_values() {
     assert doc.topmod.fns[0].return.ty == none;
 }
 
+#[test]
+fn should_not_elide_fns_with_documented_failure_conditions() {
+    let source = "#[doc(failure = \"yup\")] fn a() { }";
+    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