about summary refs log tree commit diff
path: root/src/rustdoc
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-24 18:05:57 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-24 18:05:57 -0800
commitefc067952dc907f3f9646d4effc1f3891e582557 (patch)
tree7bb92d57a61d309d6bc010f8f998b6af66ee21d3 /src/rustdoc
parent6d8058451b71f3e5a8178ca21856b529655df032 (diff)
downloadrust-efc067952dc907f3f9646d4effc1f3891e582557.tar.gz
rust-efc067952dc907f3f9646d4effc1f3891e582557.zip
rustdoc: Add fn failure conditions to the doc tree
Diffstat (limited to 'src/rustdoc')
-rw-r--r--src/rustdoc/attr_pass.rs13
-rw-r--r--src/rustdoc/doc.rs1
-rw-r--r--src/rustdoc/extract.rs1
3 files changed, 14 insertions, 1 deletions
diff --git a/src/rustdoc/attr_pass.rs b/src/rustdoc/attr_pass.rs
index bc7eb825506..c5698b4afb9 100644
--- a/src/rustdoc/attr_pass.rs
+++ b/src/rustdoc/attr_pass.rs
@@ -135,7 +135,8 @@ fn fold_fn(
             brief: attrs.brief,
             desc: attrs.desc,
             args: merge_arg_attrs(doc.args, attrs.args),
-            return: merge_ret_attrs(doc.return, attrs.return)
+            return: merge_ret_attrs(doc.return, attrs.return),
+            failure: attrs.failure
             with *doc
         };
     }
@@ -213,6 +214,16 @@ fn fold_fn_should_preserve_sig() {
     assert doc.sig == some("fn a() -> int");
 }
 
+#[test]
+fn fold_fn_should_extract_failure_conditions() {
+    let source = "#[doc(failure = \"what\")] fn a() { }";
+    let srv = astsrv::mk_srv_from_str(source);
+    let doc = extract::from_srv(srv, "");
+    let fold = fold::default_seq_fold(srv);
+    let doc = fold_fn(fold, doc.topmod.fns[0]);
+    assert doc.failure == some("what");
+}
+
 fn fold_const(
     fold: fold::fold<astsrv::srv>,
     doc: doc::constdoc
diff --git a/src/rustdoc/doc.rs b/src/rustdoc/doc.rs
index e8e3e963844..0e2f081ee39 100644
--- a/src/rustdoc/doc.rs
+++ b/src/rustdoc/doc.rs
@@ -32,6 +32,7 @@ type fndoc = ~{
     desc: option<str>,
     args: [argdoc],
     return: retdoc,
+    failure: option<str>,
     sig: option<str>
 };
 
diff --git a/src/rustdoc/extract.rs b/src/rustdoc/extract.rs
index 6217c1cb3f6..34fd89bc5a7 100644
--- a/src/rustdoc/extract.rs
+++ b/src/rustdoc/extract.rs
@@ -95,6 +95,7 @@ fn fndoc_from_fn(
             desc: none,
             ty: none
         },
+        failure: none,
         sig: none
     }
 }