]> git.lizzy.rs Git - rust.git/commitdiff
Rebasing
authorNick Cameron <ncameron@mozilla.com>
Wed, 13 May 2015 04:24:49 +0000 (16:24 +1200)
committerNick Cameron <ncameron@mozilla.com>
Wed, 13 May 2015 04:24:49 +0000 (16:24 +1200)
src/test/auxiliary/custom_derive_plugin.rs
src/test/auxiliary/custom_derive_plugin_attr.rs

index 253c89233bf5a946bbf0793864a405218ec140ed..0edbeb2d02ca4ccdb917b30b22d151d9f3229a68 100644 (file)
@@ -19,7 +19,7 @@
 
 use syntax::ast;
 use syntax::codemap::Span;
-use syntax::ext::base::{Decorator, ExtCtxt, Annotatable};
+use syntax::ext::base::{MultiDecorator, ExtCtxt, Annotatable};
 use syntax::ext::build::AstBuilder;
 use syntax::ext::deriving::generic::{cs_fold, TraitDef, MethodDef, combine_substructure};
 use syntax::ext::deriving::generic::ty::{Literal, LifetimeBounds, Path, borrowed_explicit_self};
 pub fn plugin_registrar(reg: &mut Registry) {
     reg.register_syntax_extension(
         token::intern("derive_TotalSum"),
-        Decorator(box expand));
+        MultiDecorator(box expand));
 }
 
 fn expand(cx: &mut ExtCtxt,
           span: Span,
           mitem: &ast::MetaItem,
-          item: &ast::Item,
-          push: &mut FnMut(P<ast::Item>)) {
+          item: Annotatable,
+          push: &mut FnMut(Annotatable)) {
     let trait_def = TraitDef {
         span: span,
         attributes: vec![],
@@ -70,13 +70,5 @@ fn expand(cx: &mut ExtCtxt,
         ],
     };
 
-    trait_def.expand(cx,
-                     mitem,
-                     Annotatable::Item(P(item.clone())),
-                     &mut |i| {
-                        match i {
-                            Annotatable::Item(i) => push(i),
-                            _ => panic!("Not an item")
-                        }
-                     })
+    trait_def.expand(cx, mitem, &item, push)
 }
index 445aa743a77feb7f3f40fa5850ef42846feec4ad..92963b2812dd8ef49bfb9dc617207869e08e3667 100644 (file)
@@ -20,7 +20,7 @@
 use syntax::ast;
 use syntax::attr::AttrMetaMethods;
 use syntax::codemap::Span;
-use syntax::ext::base::{Decorator, ExtCtxt};
+use syntax::ext::base::{MultiDecorator, ExtCtxt, Annotatable};
 use syntax::ext::build::AstBuilder;
 use syntax::ext::deriving::generic::{cs_fold, TraitDef, MethodDef, combine_substructure};
 use syntax::ext::deriving::generic::{Substructure, Struct, EnumMatching};
 pub fn plugin_registrar(reg: &mut Registry) {
     reg.register_syntax_extension(
         token::intern("derive_TotalSum"),
-        Decorator(box expand));
+        MultiDecorator(box expand));
 }
 
 fn expand(cx: &mut ExtCtxt,
           span: Span,
           mitem: &ast::MetaItem,
-          item: &ast::Item,
-          push: &mut FnMut(P<ast::Item>)) {
+          item: Annotatable,
+          push: &mut FnMut(Annotatable)) {
     let trait_def = TraitDef {
         span: span,
         attributes: vec![],
@@ -61,7 +61,7 @@ fn expand(cx: &mut ExtCtxt,
         ],
     };
 
-    trait_def.expand(cx, mitem, item, push)
+    trait_def.expand(cx, mitem, &item, push)
 }
 
 // Mostly copied from syntax::ext::deriving::hash