about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-25 18:44:00 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-25 21:04:53 -0800
commit53c6454de58dd3b7aeb2ad2c390872004cafff2c (patch)
tree3fc3f4c0f0dbd1e38b4a0c68c07b0ecee9c3a30e
parent1d94f40c6c9a03312b3de0902e6c6a66a54ee0a2 (diff)
downloadrust-53c6454de58dd3b7aeb2ad2c390872004cafff2c.tar.gz
rust-53c6454de58dd3b7aeb2ad2c390872004cafff2c.zip
rustdoc: Extract brief enum descs from long descs
-rw-r--r--src/rustdoc/desc_to_brief_pass.rs25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/rustdoc/desc_to_brief_pass.rs b/src/rustdoc/desc_to_brief_pass.rs
index c2412e5b702..072c6c6c910 100644
--- a/src/rustdoc/desc_to_brief_pass.rs
+++ b/src/rustdoc/desc_to_brief_pass.rs
@@ -20,7 +20,8 @@ fn run(
     let fold = fold::fold({
         fold_mod: fold_mod,
         fold_const: fold_const,
-        fold_fn: fold_fn
+        fold_fn: fold_fn,
+        fold_enum: fold_enum
         with *fold::default_seq_fold(())
     });
     fold.fold_crate(fold, doc)
@@ -59,6 +60,17 @@ fn fold_fn(fold: fold::fold<()>, doc: doc::fndoc) -> doc::fndoc {
     }
 }
 
+fn fold_enum(fold: fold::fold<()>, doc: doc::enumdoc) -> doc::enumdoc {
+    let doc = fold::default_seq_fold_enum(fold, doc);
+    let (brief, desc) = modify(doc.brief, doc.desc);
+
+    ~{
+        brief: brief,
+        desc: desc
+        with *doc
+    }
+}
+
 #[test]
 fn should_promote_mod_desc() {
     let source = "#[doc(desc = \"desc\")] mod m { }";
@@ -92,6 +104,17 @@ fn should_promote_fn_desc() {
     assert doc.topmod.fns[0].desc == none;
 }
 
+#[test]
+fn should_promote_enum_desc() {
+    let source = "#[doc(desc = \"desc\")] enum a { 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 doc.topmod.enums[0].brief == some("desc");
+    assert doc.topmod.enums[0].desc == none;
+}
+
 fn modify(
     brief: option<str>,
     desc: option<str>