Skip to content

Commit 21fc2a3

Browse files
committed
rustdoc: Build resource arguments as well
1 parent 06ab83d commit 21fc2a3

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

src/rustdoc/attr_pass.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,17 @@ fn fold_res(
320320
~{
321321
brief: attrs.brief,
322322
desc: attrs.desc,
323-
args: vec::map(attrs.args) {|attrs|
324-
~{
325-
name: attrs.name,
326-
desc: some(attrs.desc),
327-
ty: none
323+
args: vec::map(doc.args) {|doc|
324+
alt vec::find(attrs.args) {|attr|
325+
attr.name == doc.name
326+
} {
327+
some(attr) {
328+
~{
329+
desc: some(attr.desc)
330+
with *doc
331+
}
332+
}
333+
none { doc }
328334
}
329335
}
330336
with *doc

src/rustdoc/extract.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ fn moddoc_from_mod(
9191
resources: doc::reslist(
9292
vec::filter_map(module.items) {|item|
9393
alt item.node {
94-
ast::item_res(_, _, _, _, _) {
95-
some(resdoc_from_resource(item.ident, item.id))
94+
ast::item_res(decl, _, _, _, _) {
95+
some(resdoc_from_resource(decl, item.ident, item.id))
9696
}
9797
_ {
9898
none
@@ -212,6 +212,7 @@ fn should_extract_enum_variants() {
212212
}
213213

214214
fn resdoc_from_resource(
215+
decl: ast::fn_decl,
215216
name: str,
216217
id: ast::node_id
217218
) -> doc::resdoc {
@@ -220,7 +221,7 @@ fn resdoc_from_resource(
220221
name: name,
221222
brief: none,
222223
desc: none,
223-
args: [],
224+
args: argdocs_from_args(decl.inputs),
224225
sig: none
225226
}
226227
}
@@ -234,6 +235,14 @@ fn should_extract_resources() {
234235
assert doc.topmod.resources[0].name == "r";
235236
}
236237

238+
#[test]
239+
fn should_extract_resource_args() {
240+
let source = "resource r(b: bool) { }";
241+
let ast = parse::from_str(source);
242+
let doc = extract(ast, "");
243+
assert doc.topmod.resources[0].args[0].name == "b";
244+
}
245+
237246
#[cfg(test)]
238247
mod tests {
239248

0 commit comments

Comments
 (0)