Skip to content

Commit 0591d50

Browse files
committed
---
yaml --- r: 7932 b: refs/heads/snap-stage3 c: f4aba18 h: refs/heads/master v: v3
1 parent a7675fc commit 0591d50

File tree

3 files changed

+101
-4
lines changed

3 files changed

+101
-4
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
refs/heads/master: 2898dcc5d97da9427ac367542382b6239d9c0bbf
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: fd7bb70d6f8a08cbc1d6f2f37dc7781840e9a881
4+
refs/heads/snap-stage3: f4aba18ae7490385a17adf6ad4d2240856bd895b
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/snap-stage3/src/rustdoc/desc_pass.rs

Lines changed: 99 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ fn run(
2020
fold_const: fold_const,
2121
fold_fn: fold_fn,
2222
fold_enum: fold_enum,
23-
fold_res: fold_res
23+
fold_res: fold_res,
24+
fold_iface: fold_iface
2425
with *fold::default_seq_fold(op)
2526
});
2627
fold.fold_crate(fold, doc)
@@ -99,6 +100,32 @@ fn fold_res(fold: fold::fold<op>, doc: doc::resdoc) -> doc::resdoc {
99100
}
100101
}
101102

103+
fn fold_iface(fold: fold::fold<op>, doc: doc::ifacedoc) -> doc::ifacedoc {
104+
{
105+
brief: maybe_apply_op(fold.ctxt, doc.brief),
106+
desc: maybe_apply_op(fold.ctxt, doc.desc),
107+
methods: vec::map(doc.methods) {|doc|
108+
{
109+
brief: maybe_apply_op(fold.ctxt, doc.brief),
110+
desc: maybe_apply_op(fold.ctxt, doc.desc),
111+
args: vec::map(doc.args) {|doc|
112+
{
113+
desc: maybe_apply_op(fold.ctxt, doc.desc)
114+
with doc
115+
}
116+
},
117+
return: {
118+
desc: maybe_apply_op(fold.ctxt, doc.return.desc)
119+
with doc.return
120+
},
121+
failure: maybe_apply_op(fold.ctxt, doc.failure)
122+
with doc
123+
}
124+
}
125+
with doc
126+
}
127+
}
128+
102129
#[test]
103130
fn should_execute_op_on_enum_brief() {
104131
let source = "#[doc(brief = \" a \")] enum a { b }";
@@ -157,4 +184,74 @@ fn should_execute_op_on_resource_args() {
157184
let doc = attr_pass::mk_pass()(srv, doc);
158185
let doc = mk_pass(str::trim)(srv, doc);
159186
assert doc.topmod.resources()[0].args[0].desc == some("a");
160-
}
187+
}
188+
189+
#[test]
190+
fn should_execute_op_on_iface_brief() {
191+
let source = "#[doc(brief = \" a \")] iface i { fn a(); }";
192+
let srv = astsrv::mk_srv_from_str(source);
193+
let doc = extract::from_srv(srv, "");
194+
let doc = attr_pass::mk_pass()(srv, doc);
195+
let doc = mk_pass(str::trim)(srv, doc);
196+
assert doc.topmod.ifaces()[0].brief == some("a");
197+
}
198+
199+
#[test]
200+
fn should_execute_op_on_iface_desc() {
201+
let source = "#[doc(desc = \" a \")] iface i { fn a(); }";
202+
let srv = astsrv::mk_srv_from_str(source);
203+
let doc = extract::from_srv(srv, "");
204+
let doc = attr_pass::mk_pass()(srv, doc);
205+
let doc = mk_pass(str::trim)(srv, doc);
206+
assert doc.topmod.ifaces()[0].desc == some("a");
207+
}
208+
209+
#[test]
210+
fn should_execute_op_on_iface_method_brief() {
211+
let source = "iface i { #[doc(brief = \" a \")] fn a(); }";
212+
let srv = astsrv::mk_srv_from_str(source);
213+
let doc = extract::from_srv(srv, "");
214+
let doc = attr_pass::mk_pass()(srv, doc);
215+
let doc = mk_pass(str::trim)(srv, doc);
216+
assert doc.topmod.ifaces()[0].methods[0].brief == some("a");
217+
}
218+
219+
#[test]
220+
fn should_execute_op_on_iface_method_desc() {
221+
let source = "iface i { #[doc(desc = \" a \")] fn a(); }";
222+
let srv = astsrv::mk_srv_from_str(source);
223+
let doc = extract::from_srv(srv, "");
224+
let doc = attr_pass::mk_pass()(srv, doc);
225+
let doc = mk_pass(str::trim)(srv, doc);
226+
assert doc.topmod.ifaces()[0].methods[0].desc == some("a");
227+
}
228+
229+
#[test]
230+
fn should_execute_op_on_iface_method_args() {
231+
let source = "iface i { #[doc(args(a = \" a \"))] fn a(a: bool); }";
232+
let srv = astsrv::mk_srv_from_str(source);
233+
let doc = extract::from_srv(srv, "");
234+
let doc = attr_pass::mk_pass()(srv, doc);
235+
let doc = mk_pass(str::trim)(srv, doc);
236+
assert doc.topmod.ifaces()[0].methods[0].args[0].desc == some("a");
237+
}
238+
239+
#[test]
240+
fn should_execute_op_on_iface_method_return() {
241+
let source = "iface i { #[doc(return = \" a \")] fn a() -> int; }";
242+
let srv = astsrv::mk_srv_from_str(source);
243+
let doc = extract::from_srv(srv, "");
244+
let doc = attr_pass::mk_pass()(srv, doc);
245+
let doc = mk_pass(str::trim)(srv, doc);
246+
assert doc.topmod.ifaces()[0].methods[0].return.desc == some("a");
247+
}
248+
249+
#[test]
250+
fn should_execute_op_on_iface_method_failure_condition() {
251+
let source = "iface i { #[doc(failure = \" a \")] fn a(); }";
252+
let srv = astsrv::mk_srv_from_str(source);
253+
let doc = extract::from_srv(srv, "");
254+
let doc = attr_pass::mk_pass()(srv, doc);
255+
let doc = mk_pass(str::trim)(srv, doc);
256+
assert doc.topmod.ifaces()[0].methods[0].failure == some("a");
257+
}

branches/snap-stage3/src/rustdoc/trim_pass.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,4 @@ fn should_trim_failure_conditions() {
8080
let doc = attr_pass::mk_pass()(srv, doc);
8181
let doc = mk_pass()(srv, doc);
8282
assert doc.topmod.fns()[0].failure == some("a");
83-
}
83+
}

0 commit comments

Comments
 (0)