about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-01-05 19:33:37 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-01-05 19:33:37 -0800
commitfa967409232c06c35fb100aac65ff274d4d6c30d (patch)
tree18fcd1c8203fa072e3fc6dd4cbd350b3f029b3d5 /src/libsyntax
parent1070cc0109661d9f47a6e2c39ad853041ddf30e2 (diff)
downloadrust-fa967409232c06c35fb100aac65ff274d4d6c30d.tar.gz
rust-fa967409232c06c35fb100aac65ff274d4d6c30d.zip
librustc: Remove some string allocations. rs=perf
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/attr.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs
index 5062cefc497..73c14e2d00c 100644
--- a/src/libsyntax/attr.rs
+++ b/src/libsyntax/attr.rs
@@ -178,15 +178,15 @@ fn get_name_value_str_pair(item: @ast::meta_item) -> Option<(~str, ~str)> {
 /* Searching */
 
 /// Search a list of attributes and return only those with a specific name
-fn find_attrs_by_name(attrs: ~[ast::attribute], name: ~str) ->
+fn find_attrs_by_name(attrs: ~[ast::attribute], name: &str) ->
    ~[ast::attribute] {
-    let filter = (
-        fn@(a: &ast::attribute) -> Option<ast::attribute> {
-            if get_attr_name(*a) == name {
-                option::Some(*a)
-            } else { option::None }
+    let filter: &fn(a: &ast::attribute) -> Option<ast::attribute> = |a| {
+        if name == get_attr_name(*a) {
+            option::Some(*a)
+        } else {
+            option::None
         }
-    );
+    };
     return vec::filter_map(attrs, filter);
 }