about summary refs log tree commit diff
path: root/src/libsyntax/ast_map.rs
diff options
context:
space:
mode:
authorFlavio Percoco <flaper87@gmail.com>2014-04-23 18:16:06 +0200
committerFlavio Percoco <flaper87@gmail.com>2014-04-23 18:22:09 +0200
commit6e53cfa61e2d63f4dfa628d1b6592b6a729b3172 (patch)
tree7609930da13009f3b078a98c2053b7b14e5fd4d9 /src/libsyntax/ast_map.rs
parentaff620de1e5e0791b7c91f765cf17f3214848230 (diff)
downloadrust-6e53cfa61e2d63f4dfa628d1b6592b6a729b3172.tar.gz
rust-6e53cfa61e2d63f4dfa628d1b6592b6a729b3172.zip
syntax: fix de-@rooting fallout
Diffstat (limited to 'src/libsyntax/ast_map.rs')
-rw-r--r--src/libsyntax/ast_map.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/libsyntax/ast_map.rs b/src/libsyntax/ast_map.rs
index 7a167237d3e..865c3be4ae6 100644
--- a/src/libsyntax/ast_map.rs
+++ b/src/libsyntax/ast_map.rs
@@ -363,14 +363,15 @@ impl Map {
     }
 
     pub fn with_attrs<T>(&self, id: NodeId, f: |Option<&[Attribute]>| -> T) -> T {
-        let attrs = match self.get(id) {
-            NodeItem(i) => Some(i.attrs.as_slice()),
-            NodeForeignItem(fi) => Some(fi.attrs.as_slice()),
-            NodeTraitMethod(tm) => match *tm {
+        let node = self.get(id);
+        let attrs = match node {
+            NodeItem(ref i) => Some(i.attrs.as_slice()),
+            NodeForeignItem(ref fi) => Some(fi.attrs.as_slice()),
+            NodeTraitMethod(ref tm) => match **tm {
                 Required(ref type_m) => Some(type_m.attrs.as_slice()),
-                Provided(m) => Some(m.attrs.as_slice())
+                Provided(ref m) => Some(m.attrs.as_slice())
             },
-            NodeMethod(m) => Some(m.attrs.as_slice()),
+            NodeMethod(ref m) => Some(m.attrs.as_slice()),
             NodeVariant(ref v) => Some(v.node.attrs.as_slice()),
             // unit/tuple structs take the attributes straight from
             // the struct definition.