From 1a5b8e4aba6b28670116897774afde88cf5bee11 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 11 Feb 2013 08:34:00 -0800 Subject: [PATCH] libsyntax: change attr:get_attr_name to take a ref --- src/librustc/front/test.rs | 2 +- src/librustc/metadata/encoder.rs | 2 +- src/libsyntax/attr.rs | 13 ++++++------- src/libsyntax/ext/auto_encode.rs | 4 ++-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/librustc/front/test.rs b/src/librustc/front/test.rs index 7bd45d285b4..90b83e9bd6e 100644 --- a/src/librustc/front/test.rs +++ b/src/librustc/front/test.rs @@ -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 } } diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index e2a2573e041..6267e6be67b 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -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 { diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index 605d944c70d..c50c6ddc210 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -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 = |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 diff --git a/src/libsyntax/ext/auto_encode.rs b/src/libsyntax/ext/auto_encode.rs index 2809d1dcc56..24f5d650d2b 100644 --- a/src/libsyntax/ext/auto_encode.rs +++ b/src/libsyntax/ext/auto_encode.rs @@ -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 { -- GitLab