diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-05-10 15:15:06 -0700 | 
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-05-12 16:35:18 -0700 | 
| commit | 5d3559e6455757c5508bba5b5add69477ebac53e (patch) | |
| tree | 71e166364df7f828c4c98c5853597d2c62c37fac /src/libsyntax/ext/auto_encode.rs | |
| parent | 06ef889cdc77db862d526bf6a607ecdf3ee80beb (diff) | |
| download | rust-5d3559e6455757c5508bba5b5add69477ebac53e.tar.gz rust-5d3559e6455757c5508bba5b5add69477ebac53e.zip  | |
librustc: Make `self` and `static` into keywords
Diffstat (limited to 'src/libsyntax/ext/auto_encode.rs')
| -rw-r--r-- | src/libsyntax/ext/auto_encode.rs | 24 | 
1 files changed, 11 insertions, 13 deletions
diff --git a/src/libsyntax/ext/auto_encode.rs b/src/libsyntax/ext/auto_encode.rs index 1d3af61be70..e1416230720 100644 --- a/src/libsyntax/ext/auto_encode.rs +++ b/src/libsyntax/ext/auto_encode.rs @@ -245,6 +245,7 @@ trait ExtCtxtMethods { fn expr_path(&self, span: span, strs: ~[ast::ident]) -> @ast::expr; fn expr_path_global(&self, span: span, strs: ~[ast::ident]) -> @ast::expr; fn expr_var(&self, span: span, var: &str) -> @ast::expr; + fn expr_self(&self, span: span) -> @ast::expr; fn expr_field(&self, span: span, expr: @ast::expr, ident: ast::ident) -> @ast::expr; fn expr_call(&self, span: span, expr: @ast::expr, args: ~[@ast::expr]) @@ -450,6 +451,10 @@ impl ExtCtxtMethods for @ext_ctxt { self.expr_path(span, ~[self.ident_of(var)]) } + fn expr_self(&self, span: span) -> @ast::expr { + self.expr(span, ast::expr_self) + } + fn expr_field( &self, span: span, @@ -790,12 +795,8 @@ fn mk_struct_ser_impl( let expr_lambda = cx.lambda_expr_1( cx.expr_method_call( span, - cx.expr_field( - span, - cx.expr_var(span, "self"), - field.ident - ), - cx.ident_of("encode"), + cx.expr_field(span, cx.expr_self(span), field.ident), + cx.ident_of(~"encode"), ~[cx.expr_var(span, "__s")] ), cx.ident_of("__s") @@ -1062,13 +1063,10 @@ fn mk_enum_ser_body( // ast for `match *self { $(arms) }` let match_expr = cx.expr( span, - ast::expr_match( - cx.expr( - span, - ast::expr_unary(ast::deref, cx.expr_var(span, "self")) - ), - arms - ) + ast::expr_match(cx.expr(span, + ast::expr_unary(ast::deref, + cx.expr_self(span))), + arms) ); // ast for `__s.emit_enum($(name), || $(match_expr))`  | 
