Skip to content

Commit 50245c3

Browse files
committed
---
yaml --- r: 37335 b: refs/heads/try c: 586b22a h: refs/heads/master i: 37333: 6350521 37331: cdfe90d 37327: 60001de v: v3
1 parent 121810b commit 50245c3

File tree

2 files changed

+17
-27
lines changed

2 files changed

+17
-27
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 09bb07bed9166105ea961a42b5fff7739ae0d2e9
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: eb8fd119c65c67f3b1b8268cc7341c22d39b7b61
5-
refs/heads/try: 763a8e7b47f0354f96fb9e13c46d76c4c62c8a97
5+
refs/heads/try: 586b22a179177df5909fef8d437a06b3864b78a6
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: a810c03263670238bccd64cabb12a23a46e3a278

branches/try/src/rustdoc/attr_parser.rs

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,27 +36,6 @@ mod test {
3636
}
3737
}
3838
39-
fn doc_meta(
40-
attrs: ~[ast::attribute]
41-
) -> Option<@ast::meta_item> {
42-
43-
/*!
44-
* Given a vec of attributes, extract the meta_items contained in the \
45-
* doc attribute
46-
*/
47-
48-
let doc_metas = doc_metas(attrs);
49-
if vec::is_not_empty(doc_metas) {
50-
if vec::len(doc_metas) != 1u {
51-
warn!("ignoring %u doc attributes", vec::len(doc_metas) - 1u);
52-
}
53-
Some(doc_metas[0])
54-
} else {
55-
None
56-
}
57-
58-
}
59-
6039
fn doc_metas(
6140
attrs: ~[ast::attribute]
6241
) -> ~[@ast::meta_item] {
@@ -102,11 +81,13 @@ fn should_not_extract_crate_name_if_no_name_value_in_link_attribute() {
10281
}
10382

10483
fn parse_desc(attrs: ~[ast::attribute]) -> Option<~str> {
105-
match doc_meta(attrs) {
106-
Some(meta) => {
107-
attr::get_meta_item_value_str(meta)
108-
}
109-
None => None
84+
let doc_strs = do doc_metas(attrs).filter_map |meta| {
85+
attr::get_meta_item_value_str(*meta)
86+
};
87+
if doc_strs.is_empty() {
88+
None
89+
} else {
90+
Some(str::connect(doc_strs, "\n"))
11091
}
11192
}
11293

@@ -158,3 +139,12 @@ fn should_not_parse_non_hidden_attribute() {
158139
let attrs = test::parse_attributes(source);
159140
assert parse_hidden(attrs) == false;
160141
}
142+
143+
#[test]
144+
fn should_concatenate_multiple_doc_comments() {
145+
let source = ~"/// foo\n/// bar";
146+
let desc = parse_desc(test::parse_attributes(source));
147+
assert desc == Some(~"foo\nbar");
148+
}
149+
150+

0 commit comments

Comments
 (0)