diff options
Diffstat (limited to 'src/libsyntax/ext/deriving/mod.rs')
| -rw-r--r-- | src/libsyntax/ext/deriving/mod.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/libsyntax/ext/deriving/mod.rs b/src/libsyntax/ext/deriving/mod.rs index a9b5c8a4134..b8cebd8ea20 100644 --- a/src/libsyntax/ext/deriving/mod.rs +++ b/src/libsyntax/ext/deriving/mod.rs @@ -21,8 +21,7 @@ library. use ast::{Item, MetaItem, MetaList, MetaNameValue, MetaWord}; use ext::base::ExtCtxt; use codemap::Span; - -use std::gc::Gc; +use ptr::P; pub mod bounds; pub mod clone; @@ -49,9 +48,9 @@ pub mod generic; pub fn expand_meta_deriving(cx: &mut ExtCtxt, _span: Span, - mitem: Gc<MetaItem>, - item: Gc<Item>, - push: |Gc<Item>|) { + mitem: &MetaItem, + item: &Item, + push: |P<Item>|) { match mitem.node { MetaNameValue(_, ref l) => { cx.span_err(l.span, "unexpected value in `deriving`"); @@ -63,13 +62,13 @@ pub fn expand_meta_deriving(cx: &mut ExtCtxt, cx.span_warn(mitem.span, "empty trait list in `deriving`"); } MetaList(_, ref titems) => { - for &titem in titems.iter().rev() { + for titem in titems.iter().rev() { match titem.node { MetaNameValue(ref tname, _) | MetaList(ref tname, _) | MetaWord(ref tname) => { macro_rules! expand(($func:path) => ($func(cx, titem.span, - titem, item, + &**titem, item, |i| push(i)))); match tname.get() { "Clone" => expand!(clone::expand_deriving_clone), |
