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:
parent
308bc31f24
commit
29afe1a518
2 changed files with 83 additions and 1 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue