diff options
| author | Steven Fackler <sfackler@gmail.com> | 2013-08-15 02:06:33 -0400 |
|---|---|---|
| committer | Steven Fackler <sfackler@gmail.com> | 2013-08-18 13:14:15 -0400 |
| commit | 8b80922a4c7414c5bd3fc96e8f2b511e9603d5e5 (patch) | |
| tree | 01fe138c4a86f71ffa51b4d7c32da6a8cbbed394 /src/libsyntax/ext/build.rs | |
| parent | 0a238288d343fc6323b37aad8678b3ea701fb7e3 (diff) | |
quote_*! macros take an ExtCtx
They previously required one called "ext_cx" to be in scope. Fixes part of #7727
Diffstat (limited to 'src/libsyntax/ext/build.rs')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 65032642fda..9f179672422 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -605,17 +605,29 @@ impl AstBuilder for @ExtCtxt { self.expr(span, ast::expr_fn_block(fn_decl, blk)) } + #[cfg(stage0)] fn lambda0(&self, _span: span, blk: ast::Block) -> @ast::expr { let ext_cx = *self; let blk_e = self.expr(blk.span, ast::expr_block(blk.clone())); quote_expr!(|| $blk_e ) } + #[cfg(not(stage0))] + fn lambda0(&self, _span: span, blk: ast::Block) -> @ast::expr { + let blk_e = self.expr(blk.span, ast::expr_block(blk.clone())); + quote_expr!(*self, || $blk_e ) + } + #[cfg(stage0)] fn lambda1(&self, _span: span, blk: ast::Block, ident: ast::ident) -> @ast::expr { let ext_cx = *self; let blk_e = self.expr(blk.span, ast::expr_block(blk.clone())); quote_expr!(|$ident| $blk_e ) } + #[cfg(not(stage0))] + fn lambda1(&self, _span: span, blk: ast::Block, ident: ast::ident) -> @ast::expr { + let blk_e = self.expr(blk.span, ast::expr_block(blk.clone())); + quote_expr!(*self, |$ident| $blk_e ) + } fn lambda_expr(&self, span: span, ids: ~[ast::ident], expr: @ast::expr) -> @ast::expr { self.lambda(span, ids, self.block_expr(expr)) |
