about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/rustdoc/fold.rs3
-rw-r--r--src/rustdoc/tystr_pass.rs33
2 files changed, 34 insertions, 2 deletions
diff --git a/src/rustdoc/fold.rs b/src/rustdoc/fold.rs
index 130ce69eda5..607f2411234 100644
--- a/src/rustdoc/fold.rs
+++ b/src/rustdoc/fold.rs
@@ -110,7 +110,8 @@ fn default_seq_fold_mod<T>(
         mods: fold.fold_modlist(fold, doc.mods),
         fns: fold.fold_fnlist(fold, doc.fns),
         consts: fold.fold_constlist(fold, doc.consts),
-        enums: fold.fold_enumlist(fold, doc.enums)
+        enums: fold.fold_enumlist(fold, doc.enums),
+        resources: fold.fold_reslist(fold, doc.resources)
         with *doc
     }
 }
diff --git a/src/rustdoc/tystr_pass.rs b/src/rustdoc/tystr_pass.rs
index e8be05b0cda..a4a6ccde41c 100644
--- a/src/rustdoc/tystr_pass.rs
+++ b/src/rustdoc/tystr_pass.rs
@@ -18,7 +18,8 @@ fn run(
     let fold = fold::fold({
         fold_fn: fold_fn,
         fold_const: fold_const,
-        fold_enum: fold_enum
+        fold_enum: fold_enum,
+        fold_res: fold_res
         with *fold::default_seq_fold(srv)
     });
     fold.fold_crate(fold, doc)
@@ -222,3 +223,33 @@ fn should_add_variant_sigs() {
     let doc = run(srv, doc);
     assert doc.topmod.enums[0].variants[0].sig == some("b(int)");
 }
+
+fn fold_res(
+    fold: fold::fold<astsrv::srv>,
+    doc: doc::resdoc
+) -> doc::resdoc {
+    let srv = fold.ctxt;
+
+    ~{
+        sig: some(astsrv::exec(srv) {|ctxt|
+            alt ctxt.ast_map.get(doc.id) {
+              ast_map::node_item(@{
+                node: ast::item_res(decl, _, _, _, _), _
+              }) {
+                pprust::res_to_str(decl, doc.name, [])
+              }
+            }
+        })
+        with *doc
+    }
+}
+
+#[test]
+fn should_add_resource_sigs() {
+    let source = "resource r(b: bool) { }";
+    let srv = astsrv::mk_srv_from_str(source);
+    let doc = extract::from_srv(srv, "");
+    let doc = run(srv, doc);
+    log(error, doc.topmod.resources[0].sig);
+    assert doc.topmod.resources[0].sig == some("resource r(b: bool)");
+}