diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-01-26 22:14:16 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-01-26 22:14:16 -0800 |
| commit | 21fc2a36d8941242e65227d1362259bc7b399bec (patch) | |
| tree | 198a3f5ffa88e789e8a42d89a2e63d5b154591e8 /src | |
| parent | 06ab83de2c72ebaf87b33133007a0dd0e79962db (diff) | |
| download | rust-21fc2a36d8941242e65227d1362259bc7b399bec.tar.gz rust-21fc2a36d8941242e65227d1362259bc7b399bec.zip | |
rustdoc: Build resource arguments as well
Diffstat (limited to 'src')
| -rw-r--r-- | src/rustdoc/attr_pass.rs | 16 | ||||
| -rw-r--r-- | src/rustdoc/extract.rs | 15 |
2 files changed, 23 insertions, 8 deletions
diff --git a/src/rustdoc/attr_pass.rs b/src/rustdoc/attr_pass.rs index c1bbe68b7dd..9ee4f8ec78c 100644 --- a/src/rustdoc/attr_pass.rs +++ b/src/rustdoc/attr_pass.rs @@ -320,11 +320,17 @@ fn fold_res( ~{ brief: attrs.brief, desc: attrs.desc, - args: vec::map(attrs.args) {|attrs| - ~{ - name: attrs.name, - desc: some(attrs.desc), - ty: none + args: vec::map(doc.args) {|doc| + alt vec::find(attrs.args) {|attr| + attr.name == doc.name + } { + some(attr) { + ~{ + desc: some(attr.desc) + with *doc + } + } + none { doc } } } with *doc diff --git a/src/rustdoc/extract.rs b/src/rustdoc/extract.rs index f6d4d477fbb..f5d2f613aa7 100644 --- a/src/rustdoc/extract.rs +++ b/src/rustdoc/extract.rs @@ -91,8 +91,8 @@ fn moddoc_from_mod( resources: doc::reslist( vec::filter_map(module.items) {|item| alt item.node { - ast::item_res(_, _, _, _, _) { - some(resdoc_from_resource(item.ident, item.id)) + ast::item_res(decl, _, _, _, _) { + some(resdoc_from_resource(decl, item.ident, item.id)) } _ { none @@ -212,6 +212,7 @@ fn should_extract_enum_variants() { } fn resdoc_from_resource( + decl: ast::fn_decl, name: str, id: ast::node_id ) -> doc::resdoc { @@ -220,7 +221,7 @@ fn resdoc_from_resource( name: name, brief: none, desc: none, - args: [], + args: argdocs_from_args(decl.inputs), sig: none } } @@ -234,6 +235,14 @@ fn should_extract_resources() { assert doc.topmod.resources[0].name == "r"; } +#[test] +fn should_extract_resource_args() { + let source = "resource r(b: bool) { }"; + let ast = parse::from_str(source); + let doc = extract(ast, ""); + assert doc.topmod.resources[0].args[0].name == "b"; +} + #[cfg(test)] mod tests { |
