about summary refs log tree commit diff
path: root/src/libsyntax/ext/deriving/clone.rs
diff options
context:
space:
mode:
authorEduard Burtescu <edy.burt@gmail.com>2014-09-13 19:06:01 +0300
committerEduard Burtescu <edy.burt@gmail.com>2014-09-14 03:39:36 +0300
commitccd8498afbb371939b7decdbee712f726ccbded3 (patch)
tree8939c9dba98ee7a2f624e82c3c72dcf33576d350 /src/libsyntax/ext/deriving/clone.rs
parentd6fb338d01864e3801cab9f76d608f204d11fc27 (diff)
downloadrust-ccd8498afbb371939b7decdbee712f726ccbded3.tar.gz
rust-ccd8498afbb371939b7decdbee712f726ccbded3.zip
syntax: fix fallout from using ptr::P.
Diffstat (limited to 'src/libsyntax/ext/deriving/clone.rs')
-rw-r--r--src/libsyntax/ext/deriving/clone.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/libsyntax/ext/deriving/clone.rs b/src/libsyntax/ext/deriving/clone.rs
index bbe96018f4b..64607ffd5d4 100644
--- a/src/libsyntax/ext/deriving/clone.rs
+++ b/src/libsyntax/ext/deriving/clone.rs
@@ -15,14 +15,13 @@ use ext::build::AstBuilder;
 use ext::deriving::generic::*;
 use ext::deriving::generic::ty::*;
 use parse::token::InternedString;
-
-use std::gc::Gc;
+use ptr::P;
 
 pub fn expand_deriving_clone(cx: &mut ExtCtxt,
                              span: Span,
-                             mitem: Gc<MetaItem>,
-                             item: Gc<Item>,
-                             push: |Gc<Item>|) {
+                             mitem: &MetaItem,
+                             item: &Item,
+                             push: |P<Item>|) {
     let inline = cx.meta_word(span, InternedString::new("inline"));
     let attrs = vec!(cx.attribute(span, inline));
     let trait_def = TraitDef {
@@ -52,12 +51,12 @@ pub fn expand_deriving_clone(cx: &mut ExtCtxt,
 fn cs_clone(
     name: &str,
     cx: &mut ExtCtxt, trait_span: Span,
-    substr: &Substructure) -> Gc<Expr> {
+    substr: &Substructure) -> P<Expr> {
     let clone_ident = substr.method_ident;
     let ctor_ident;
     let all_fields;
     let subcall = |field: &FieldInfo|
-        cx.expr_method_call(field.span, field.self_, clone_ident, Vec::new());
+        cx.expr_method_call(field.span, field.self_.clone(), clone_ident, Vec::new());
 
     match *substr.fields {
         Struct(ref af) => {