diff options
| author | Luqman Aden <laden@csclub.uwaterloo.ca> | 2013-10-20 08:31:23 -0400 |
|---|---|---|
| committer | Luqman Aden <laden@csclub.uwaterloo.ca> | 2013-10-25 01:21:07 -0400 |
| commit | 12308db3d23fe59b7ccfed6c535896ac6fdb5abe (patch) | |
| tree | 0ee8744bc3fa89748369deb97429df97a83ef056 /src/libsyntax/ext/build.rs | |
| parent | c16a95c587bb5ff5f06894657a1d7aafc69a2084 (diff) | |
libsyntax/librustc: Allow mut qualifier in patterns.
Diffstat (limited to 'src/libsyntax/ext/build.rs')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 78cdc3f585b..4c3ab840b44 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -399,9 +399,12 @@ impl AstBuilder for @ExtCtxt { } fn stmt_let(&self, sp: Span, mutbl: bool, ident: ast::Ident, ex: @ast::Expr) -> @ast::Stmt { - let pat = self.pat_ident(sp, ident); + let pat = if mutbl { + self.pat_ident_binding_mode(sp, ident, ast::BindByValue(ast::MutMutable)) + } else { + self.pat_ident(sp, ident) + }; let local = @ast::Local { - is_mutbl: mutbl, ty: self.ty_infer(sp), pat: pat, init: Some(ex), @@ -419,9 +422,12 @@ impl AstBuilder for @ExtCtxt { typ: ast::Ty, ex: @ast::Expr) -> @ast::Stmt { - let pat = self.pat_ident(sp, ident); + let pat = if mutbl { + self.pat_ident_binding_mode(sp, ident, ast::BindByValue(ast::MutMutable)) + } else { + self.pat_ident(sp, ident) + }; let local = @ast::Local { - is_mutbl: mutbl, ty: typ, pat: pat, init: Some(ex), @@ -624,7 +630,7 @@ impl AstBuilder for @ExtCtxt { self.pat(span, ast::PatLit(expr)) } fn pat_ident(&self, span: Span, ident: ast::Ident) -> @ast::Pat { - self.pat_ident_binding_mode(span, ident, ast::BindInfer) + self.pat_ident_binding_mode(span, ident, ast::BindByValue(ast::MutImmutable)) } fn pat_ident_binding_mode(&self, @@ -710,7 +716,6 @@ impl AstBuilder for @ExtCtxt { fn arg(&self, span: Span, ident: ast::Ident, ty: ast::Ty) -> ast::arg { let arg_pat = self.pat_ident(span, ident); ast::arg { - is_mutbl: false, ty: ty, pat: arg_pat, id: ast::DUMMY_NODE_ID |
