Skip to content

Commit 534225d

Browse files
committed
---
yaml --- r: 7925 b: refs/heads/snap-stage3 c: cb4a383 h: refs/heads/master i: 7923: 1b04b92 v: v3
1 parent 8836955 commit 534225d

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
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: d3aa1748461e1220fb26a6e556a78b88a32cc2bd
4+
refs/heads/snap-stage3: cb4a3839222a0501a8f54f3c31dbf8ffa2c2945d
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

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

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ fn moddoc_from_mod(
7070
resdoc_from_resource(decl, item.ident, item.id)
7171
))
7272
}
73+
ast::item_iface(_, methods) {
74+
some(doc::ifacetag(
75+
ifacedoc_from_iface(methods, item.ident, item.id)
76+
))
77+
}
7378
_ {
7479
none
7580
}
@@ -219,6 +224,57 @@ fn should_extract_resource_args() {
219224
assert doc.topmod.resources()[0].args[0].name == "b";
220225
}
221226

227+
fn ifacedoc_from_iface(
228+
methods: [ast::ty_method],
229+
name: str,
230+
id: ast::node_id
231+
) -> doc::ifacedoc {
232+
{
233+
id: id,
234+
name: name,
235+
brief: none,
236+
desc: none,
237+
methods: vec::map(methods) {|method|
238+
{
239+
name: method.ident,
240+
brief: none,
241+
desc: none,
242+
args: argdocs_from_args(method.decl.inputs),
243+
return: {
244+
desc: none,
245+
ty: none
246+
},
247+
failure: none,
248+
sig: none
249+
}
250+
}
251+
}
252+
}
253+
254+
#[test]
255+
fn should_extract_ifaces() {
256+
let source = "iface i { fn f(); }";
257+
let ast = parse::from_str(source);
258+
let doc = extract(ast, "");
259+
assert doc.topmod.ifaces()[0].name == "i";
260+
}
261+
262+
#[test]
263+
fn should_extract_iface_methods() {
264+
let source = "iface i { fn f(); }";
265+
let ast = parse::from_str(source);
266+
let doc = extract(ast, "");
267+
assert doc.topmod.ifaces()[0].methods[0].name == "f";
268+
}
269+
270+
#[test]
271+
fn should_extract_iface_method_args() {
272+
let source = "iface i { fn f(a: bool); }";
273+
let ast = parse::from_str(source);
274+
let doc = extract(ast, "");
275+
assert doc.topmod.ifaces()[0].methods[0].args[0].name == "a";
276+
}
277+
222278
#[cfg(test)]
223279
mod tests {
224280

0 commit comments

Comments
 (0)