diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-08-08 17:14:25 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-08-08 17:15:37 -0700 |
| commit | 4f98e80db1179d63395d2a4ccd432b5590d12d61 (patch) | |
| tree | 9ab92b85eccc0f7849141c530f10ed13fafe4557 /src/libsyntax/ext | |
| parent | 35db5b7be16cedf12c1f32736b031a9f7438d6b3 (diff) | |
| download | rust-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.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ext/pipes/ast_builder.rs | 15 | ||||
| -rw-r--r-- | src/libsyntax/ext/pipes/pipec.rs | 3 |
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] { |
