summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-08-08 17:14:25 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-08-08 17:15:37 -0700
commit4f98e80db1179d63395d2a4ccd432b5590d12d61 (patch)
tree9ab92b85eccc0f7849141c530f10ed13fafe4557 /src/libsyntax/ext
parent35db5b7be16cedf12c1f32736b031a9f7438d6b3 (diff)
downloadrust-4f98e80db1179d63395d2a4ccd432b5590d12d61.tar.gz
rust-4f98e80db1179d63395d2a4ccd432b5590d12d61.zip
rustc: Do some plumbing work in preparation for common fields in enums
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/auto_serialize.rs4
-rw-r--r--src/libsyntax/ext/pipes/ast_builder.rs15
-rw-r--r--src/libsyntax/ext/pipes/pipec.rs3
3 files changed, 10 insertions, 12 deletions
diff --git a/src/libsyntax/ext/auto_serialize.rs b/src/libsyntax/ext/auto_serialize.rs
index d0a55b6d95c..934a295dfb5 100644
--- a/src/libsyntax/ext/auto_serialize.rs
+++ b/src/libsyntax/ext/auto_serialize.rs
@@ -107,10 +107,10 @@ fn expand(cx: ext_ctxt,
                         ty_fns(cx, in_item.ident, ty, tps))
           }
 
-          ast::item_enum(variants, tps) => {
+          ast::item_enum(enum_definition, tps) => {
             vec::append(~[filter_attrs(in_item)],
                         enum_fns(cx, in_item.ident,
-                                 in_item.span, variants, tps))
+                                 in_item.span, enum_definition.variants, tps))
           }
 
           _ => {
diff --git a/src/libsyntax/ext/pipes/ast_builder.rs b/src/libsyntax/ext/pipes/ast_builder.rs
index 06a22b63fe0..716fe62a61f 100644
--- a/src/libsyntax/ext/pipes/ast_builder.rs
+++ b/src/libsyntax/ext/pipes/ast_builder.rs
@@ -66,9 +66,9 @@ trait ext_ctxt_ast_builder {
                output: @ast::ty,
                +body: ast::blk) -> @ast::item;
     fn item_enum_poly(name: ident,
-                      +variants: ~[ast::variant],
+                      +enum_definition: ast::enum_def,
                       +ty_params: ~[ast::ty_param]) -> @ast::item;
-    fn item_enum(name: ident, +variants: ~[ast::variant]) -> @ast::item;
+    fn item_enum(name: ident, +enum_definition: ast::enum_def) -> @ast::item;
     fn variant(name: ident, +tys: ~[@ast::ty]) -> ast::variant;
     fn item_mod(name: ident, +items: ~[@ast::item]) -> @ast::item;
     fn ty_path_ast_builder(path: @ast::path) -> @ast::ty;
@@ -236,16 +236,13 @@ impl ast_builder of ext_ctxt_ast_builder for ext_ctxt {
     }
 
     fn item_enum_poly(name: ident,
-                      +variants: ~[ast::variant],
+                      +enum_definition: ast::enum_def,
                       +ty_params: ~[ast::ty_param]) -> @ast::item {
-        self.item(name,
-                  ast::item_enum(variants,
-                                 ty_params))
+        self.item(name, ast::item_enum(enum_definition, ty_params))
     }
 
-    fn item_enum(name: ident,
-                 +variants: ~[ast::variant]) -> @ast::item {
-        self.item_enum_poly(name, variants, ~[])
+    fn item_enum(name: ident, +enum_definition: ast::enum_def) -> @ast::item {
+        self.item_enum_poly(name, enum_definition, ~[])
     }
 
     fn variant(name: ident,
diff --git a/src/libsyntax/ext/pipes/pipec.rs b/src/libsyntax/ext/pipes/pipec.rs
index 2e00c1b5e14..b4db8a6a72a 100644
--- a/src/libsyntax/ext/pipes/pipec.rs
+++ b/src/libsyntax/ext/pipes/pipec.rs
@@ -237,7 +237,8 @@ impl compile of to_type_decls for state {
             vec::push(items_msg, v);
         }
 
-        ~[cx.item_enum_poly(name, items_msg, self.ty_params)]
+        ~[cx.item_enum_poly(name, ast::enum_def({ variants: items_msg }),
+                            self.ty_params)]
     }
 
     fn to_endpoint_decls(cx: ext_ctxt, dir: direction) -> ~[@ast::item] {