about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/librustc/arena.rs26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/librustc/arena.rs b/src/librustc/arena.rs
index 2f73566920d..897a587fce8 100644
--- a/src/librustc/arena.rs
+++ b/src/librustc/arena.rs
@@ -187,6 +187,16 @@ macro_rules! declare_arena {
             drop: DropArena,
             $($name: arena_for_type!($a[$ty]),)*
         }
+
+        $(
+            impl ArenaAllocatable for $ty {}
+            unsafe impl<$tcx> ArenaField<$tcx> for $ty {
+                #[inline]
+                fn arena<'a>(_arena: &'a Arena<$tcx>) -> Option<&'a TypedArena<Self>> {
+                    which_arena_for_type!($a[&_arena.$name])
+                }
+            }
+        )*
     }
 }
 
@@ -202,24 +212,8 @@ macro_rules! which_arena_for_type {
     };
 }
 
-macro_rules! impl_arena_allocatable {
-    ([], [$($a:tt $name:ident: $ty:ty,)*], $tcx:lifetime) => {
-        $(
-            impl ArenaAllocatable for $ty {}
-            unsafe impl<$tcx> ArenaField<$tcx> for $ty {
-                #[inline]
-                fn arena<'a>(_arena: &'a Arena<$tcx>) -> Option<&'a TypedArena<Self>> {
-                    which_arena_for_type!($a[&_arena.$name])
-                }
-            }
-        )*
-    }
-}
-
 arena_types!(declare_arena, [], 'tcx);
 
-arena_types!(impl_arena_allocatable, [], 'tcx);
-
 #[marker]
 pub trait ArenaAllocatable {}