提交 1a5b8e4a 编写于 作者: E Erick Tryzelaar

libsyntax: change attr:get_attr_name to take a ref

上级 bc62bd37
......@@ -111,7 +111,7 @@ fn fold_mod(cx: @mut TestCtxt,
fn nomain(cx: @mut TestCtxt, item: @ast::item) -> @ast::item {
if !*cx.sess.building_library {
@ast::item{attrs: item.attrs.filtered(|attr| {
attr::get_attr_name(*attr) != ~"main"
attr::get_attr_name(attr) != ~"main"
}),.. copy *item}
} else { item }
}
......
......@@ -1097,7 +1097,7 @@ fn synthesize_link_attr(ecx: @encode_ctxt, +items: ~[@meta_item]) ->
let mut found_link_attr = false;
for crate.node.attrs.each |attr| {
attrs.push(
if attr::get_attr_name(*attr) != ~"link" {
if attr::get_attr_name(attr) != ~"link" {
/*bad*/copy *attr
} else {
match /*bad*/copy attr.node.value.node {
......
......@@ -90,7 +90,7 @@ pub fn desugar_doc_attr(attr: &ast::attribute) -> ast::attribute {
/* Accessors */
pub fn get_attr_name(attr: ast::attribute) -> ~str {
pub fn get_attr_name(attr: &ast::attribute) -> ~str {
get_meta_item_name(@attr.node.value)
}
......@@ -146,14 +146,13 @@ pub fn get_name_value_str_pair(item: @ast::meta_item)
/// Search a list of attributes and return only those with a specific name
pub fn find_attrs_by_name(attrs: &[ast::attribute], name: &str) ->
~[ast::attribute] {
let filter: &fn(a: &ast::attribute) -> Option<ast::attribute> = |a| {
if name == get_attr_name(*a) {
option::Some(*a)
do vec::filter_mapped(attrs) |a| {
if name == get_attr_name(a) {
Some(*a)
} else {
option::None
None
}
};
return vec::filter_mapped(attrs, filter);
}
}
/// Search a list of meta items and return only those with a specific name
......
......@@ -114,7 +114,7 @@ pub fn expand_auto_encode(
in_items: ~[@ast::item]
) -> ~[@ast::item] {
fn is_auto_encode(a: &ast::attribute) -> bool {
attr::get_attr_name(*a) == ~"auto_encode"
attr::get_attr_name(a) == ~"auto_encode"
}
fn filter_attrs(item: @ast::item) -> @ast::item {
......@@ -169,7 +169,7 @@ pub fn expand_auto_decode(
in_items: ~[@ast::item]
) -> ~[@ast::item] {
fn is_auto_decode(a: &ast::attribute) -> bool {
attr::get_attr_name(*a) == ~"auto_decode"
attr::get_attr_name(a) == ~"auto_decode"
}
fn filter_attrs(item: @ast::item) -> @ast::item {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册