librustc: Parse, but do not fully turn on, the ref
keyword for
by-reference upvars. This partially implements RFC 38. A snapshot will be needed to turn this on, because stage0 cannot yet parse the keyword. Part of #12381.
This commit is contained in:
parent
28b5e4588f
commit
a63003fe1a
29 changed files with 254 additions and 72 deletions
|
@ -876,14 +876,14 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
|
|||
|
||||
fn lambda_fn_decl(&self, span: Span,
|
||||
fn_decl: P<ast::FnDecl>, blk: P<ast::Block>) -> Gc<ast::Expr> {
|
||||
self.expr(span, ast::ExprFnBlock(fn_decl, blk))
|
||||
self.expr(span, ast::ExprFnBlock(ast::CaptureByRef, fn_decl, blk))
|
||||
}
|
||||
fn lambda(&self, span: Span, ids: Vec<ast::Ident> , blk: P<ast::Block>) -> Gc<ast::Expr> {
|
||||
let fn_decl = self.fn_decl(
|
||||
ids.iter().map(|id| self.arg(span, *id, self.ty_infer(span))).collect(),
|
||||
self.ty_infer(span));
|
||||
|
||||
self.expr(span, ast::ExprFnBlock(fn_decl, blk))
|
||||
self.expr(span, ast::ExprFnBlock(ast::CaptureByRef, fn_decl, blk))
|
||||
}
|
||||
fn lambda0(&self, span: Span, blk: P<ast::Block>) -> Gc<ast::Expr> {
|
||||
self.lambda(span, Vec::new(), blk)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue