Skip to content

Commit 07bb44f

Browse files
committed
---
yaml --- r: 7463 b: refs/heads/master c: 266cc7b h: refs/heads/master i: 7461: 9916d97 7459: 6a87e12 7455: e4655e5 v: v3
1 parent f9ce8db commit 07bb44f

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 515fdb2863d0e192499ab1aaf5f591be333d31ee
2+
refs/heads/master: 266cc7b0c30194300ca49eda6da95941b01474b9

trunk/src/rustdoc/attr_pass.rs

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,23 @@ fn fold_fn(
154154
}
155155

156156
fn merge_arg_attrs(
157-
doc: [doc::argdoc],
158-
_attrs: [attr_parser::arg_attrs]
157+
docs: [doc::argdoc],
158+
attrs: [attr_parser::arg_attrs]
159159
) -> [doc::argdoc] {
160-
// FIXME
161-
doc
160+
vec::map(docs) {|doc|
161+
alt vec::find(attrs) {|attr|
162+
attr.name == doc.name
163+
} {
164+
some(attr) {
165+
~{
166+
desc: some(attr.desc)
167+
with *doc
168+
}
169+
}
170+
none. { doc }
171+
}
172+
}
173+
// FIXME: Warning when documenting a non-existant arg
162174
}
163175

164176
fn merge_ret_attrs(
@@ -179,3 +191,13 @@ fn fold_fn_should_extract_fn_attributes() {
179191
let doc = fold_fn(fold, doc.topmod.fns[0]);
180192
assert doc.desc == some("test");
181193
}
194+
195+
#[test]
196+
fn fold_fn_should_extract_arg_attributes() {
197+
let source = "#[doc(args(a = \"b\"))] fn c(a: bool) { }";
198+
let srv = astsrv::mk_srv_from_str(source);
199+
let doc = extract::from_srv(srv, "");
200+
let fold = fold::default_seq_fold(srv);
201+
let doc = fold_fn(fold, doc.topmod.fns[0]);
202+
assert doc.args[0].desc == some("b");
203+
}

trunk/src/rustdoc/doc.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ type fndoc = ~{
2626

2727
type argdoc = ~{
2828
name: str,
29+
desc: option<str>,
2930
ty: option<str>
3031
};
3132

trunk/src/rustdoc/extract.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ fn argdocs_from_args(args: [ast::arg]) -> [doc::argdoc] {
100100
fn argdoc_from_arg(arg: ast::arg) -> doc::argdoc {
101101
~{
102102
name: arg.ident,
103+
desc: none,
103104
ty: none
104105
}
105106
}

0 commit comments

Comments
 (0)