diff options
| -rw-r--r-- | src/rustdoc/fold.rs | 3 | ||||
| -rw-r--r-- | src/rustdoc/tystr_pass.rs | 33 |
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)"); +} |
