Write metadata for sythesized name/vers items to the crate's link attr

If the crate doesn't specify it's name or version, the defaults need to be
exported in the crate metadata
This commit is contained in:
Brian Anderson 2011-06-29 14:17:23 -07:00
parent 308bc31f24
commit 29afe1a518
2 changed files with 83 additions and 1 deletions

View file

@ -10,6 +10,8 @@ export find_attrs_by_name;
export find_meta_items_by_name;
export contains;
export sort_meta_items;
export remove_meta_items_by_name;
export get_attr_name;
// From a list of crate attributes get only the meta_items that impact crate
// linkage
@ -138,6 +140,21 @@ fn sort_meta_items(&vec[@ast::meta_item] items) -> vec[@ast::meta_item] {
ret v2;
}
fn remove_meta_items_by_name(&vec[@ast::meta_item] items,
str name) -> vec[@ast::meta_item] {
auto filter = bind fn(&@ast::meta_item item,
str name) -> option::t[@ast::meta_item] {
if (get_meta_item_name(item) != name) {
option::some(item)
} else {
option::none
}
} (_, name);
ret vec::filter_map(filter, items);
}
//
// Local Variables:
// mode: rust