Skip to content

Commit e51ae23

Browse files
committed
rustdoc: Apply generic string-op passes to resources
1 parent 4c188fb commit e51ae23

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

src/rustdoc/desc_pass.rs

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ fn run(
1919
fold_mod: fold_mod,
2020
fold_const: fold_const,
2121
fold_fn: fold_fn,
22-
fold_enum: fold_enum
22+
fold_enum: fold_enum,
23+
fold_res: fold_res
2324
with *fold::default_seq_fold(op)
2425
});
2526
fold.fold_crate(fold, doc)
@@ -84,6 +85,20 @@ fn fold_enum(fold: fold::fold<op>, doc: doc::enumdoc) -> doc::enumdoc {
8485
}
8586
}
8687

88+
fn fold_res(fold: fold::fold<op>, doc: doc::resdoc) -> doc::resdoc {
89+
~{
90+
brief: maybe_apply_op(fold.ctxt, doc.brief),
91+
desc: maybe_apply_op(fold.ctxt, doc.desc),
92+
args: vec::map(doc.args) {|arg|
93+
~{
94+
desc: maybe_apply_op(fold.ctxt, arg.desc)
95+
with *arg
96+
}
97+
}
98+
with *doc
99+
}
100+
}
101+
87102
#[test]
88103
fn should_execute_op_on_enum_brief() {
89104
let source = "#[doc(brief = \" a \")] enum a { b }";
@@ -112,4 +127,34 @@ fn should_execute_op_on_variant_desc() {
112127
let doc = attr_pass::mk_pass()(srv, doc);
113128
let doc = mk_pass(str::trim)(srv, doc);
114129
assert doc.topmod.enums[0].variants[0].desc == some("a");
130+
}
131+
132+
#[test]
133+
fn should_execute_op_on_resource_brief() {
134+
let source = "#[doc(brief = \" a \")] resource r(a: bool) { }";
135+
let srv = astsrv::mk_srv_from_str(source);
136+
let doc = extract::from_srv(srv, "");
137+
let doc = attr_pass::mk_pass()(srv, doc);
138+
let doc = mk_pass(str::trim)(srv, doc);
139+
assert doc.topmod.resources[0].brief == some("a");
140+
}
141+
142+
#[test]
143+
fn should_execute_op_on_resource_desc() {
144+
let source = "#[doc(desc = \" a \")] resource r(a: bool) { }";
145+
let srv = astsrv::mk_srv_from_str(source);
146+
let doc = extract::from_srv(srv, "");
147+
let doc = attr_pass::mk_pass()(srv, doc);
148+
let doc = mk_pass(str::trim)(srv, doc);
149+
assert doc.topmod.resources[0].desc == some("a");
150+
}
151+
152+
#[test]
153+
fn should_execute_op_on_resource_args() {
154+
let source = "#[doc(args(a = \" a \"))] resource r(a: bool) { }";
155+
let srv = astsrv::mk_srv_from_str(source);
156+
let doc = extract::from_srv(srv, "");
157+
let doc = attr_pass::mk_pass()(srv, doc);
158+
let doc = mk_pass(str::trim)(srv, doc);
159+
assert doc.topmod.resources[0].args[0].desc == some("a");
115160
}

0 commit comments

Comments
 (0)