Merge pull request #3832 from Dretch/concatdocstrs
Fix and test for issue #3780.
This commit is contained in:
commit
586b22a179
@ -36,27 +36,6 @@ mod test {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn doc_meta(
|
|
||||||
attrs: ~[ast::attribute]
|
|
||||||
) -> Option<@ast::meta_item> {
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Given a vec of attributes, extract the meta_items contained in the \
|
|
||||||
* doc attribute
|
|
||||||
*/
|
|
||||||
|
|
||||||
let doc_metas = doc_metas(attrs);
|
|
||||||
if vec::is_not_empty(doc_metas) {
|
|
||||||
if vec::len(doc_metas) != 1u {
|
|
||||||
warn!("ignoring %u doc attributes", vec::len(doc_metas) - 1u);
|
|
||||||
}
|
|
||||||
Some(doc_metas[0])
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
fn doc_metas(
|
fn doc_metas(
|
||||||
attrs: ~[ast::attribute]
|
attrs: ~[ast::attribute]
|
||||||
) -> ~[@ast::meta_item] {
|
) -> ~[@ast::meta_item] {
|
||||||
@ -102,11 +81,13 @@ fn should_not_extract_crate_name_if_no_name_value_in_link_attribute() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn parse_desc(attrs: ~[ast::attribute]) -> Option<~str> {
|
fn parse_desc(attrs: ~[ast::attribute]) -> Option<~str> {
|
||||||
match doc_meta(attrs) {
|
let doc_strs = do doc_metas(attrs).filter_map |meta| {
|
||||||
Some(meta) => {
|
attr::get_meta_item_value_str(*meta)
|
||||||
attr::get_meta_item_value_str(meta)
|
};
|
||||||
}
|
if doc_strs.is_empty() {
|
||||||
None => None
|
None
|
||||||
|
} else {
|
||||||
|
Some(str::connect(doc_strs, "\n"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,3 +139,12 @@ fn should_not_parse_non_hidden_attribute() {
|
|||||||
let attrs = test::parse_attributes(source);
|
let attrs = test::parse_attributes(source);
|
||||||
assert parse_hidden(attrs) == false;
|
assert parse_hidden(attrs) == false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_concatenate_multiple_doc_comments() {
|
||||||
|
let source = ~"/// foo\n/// bar";
|
||||||
|
let desc = parse_desc(test::parse_attributes(source));
|
||||||
|
assert desc == Some(~"foo\nbar");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user