diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2017-06-17 01:51:55 +0200 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2017-06-17 01:51:55 +0200 |
| commit | bd7cc779b65e658ff5b6bbd9d2bdd8ed07ea38f2 (patch) | |
| tree | bee5262c5fee95d32c95b620df60d279742fa75a /src/librustc/hir | |
| parent | 09bc09201ca02c9bdbcba1c72610209c3598bca1 (diff) | |
| download | rust-bd7cc779b65e658ff5b6bbd9d2bdd8ed07ea38f2.tar.gz rust-bd7cc779b65e658ff5b6bbd9d2bdd8ed07ea38f2.zip | |
Make the `next` variable mutable to allow for ref mut in for patterns.
Diffstat (limited to 'src/librustc/hir')
| -rw-r--r-- | src/librustc/hir/lowering.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index f2a43497953..4b8ee8d8aec 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -2170,12 +2170,12 @@ impl<'a> LoweringContext<'a> { // let result = match ::std::iter::IntoIterator::into_iter(<head>) { // mut iter => { // [opt_ident]: loop { - // let next; + // let mut _next; // match ::std::iter::Iterator::next(&mut iter) { - // ::std::option::Option::Some(val) => next = val, + // ::std::option::Option::Some(val) => _next = val, // ::std::option::Option::None => break // }; - // let <pat> = next; + // let <pat> = _next; // StmtExpr(<body>); // } // } @@ -2188,8 +2188,8 @@ impl<'a> LoweringContext<'a> { let iter = self.str_to_ident("iter"); - let next_ident = self.str_to_ident("next"); - let next_pat = self.pat_ident(e.span, next_ident); + let next_ident = self.str_to_ident("_next"); + let next_pat = self.pat_ident_binding_mode(e.span, next_ident, hir::BindByValue(hir::MutMutable)); // `::std::option::Option::Some(val) => next = val` let pat_arm = { @@ -2235,13 +2235,13 @@ impl<'a> LoweringContext<'a> { let next_expr = P(self.expr_ident(e.span, next_ident, next_pat.id)); - // `let next` + // `let mut _next` let next_let = self.stmt_let_pat(e.span, None, next_pat, hir::LocalSource::ForLoopDesugar); - // `let <pat> = next` + // `let <pat> = _next` let pat = self.lower_pat(pat); let pat_let = self.stmt_let_pat(e.span, Some(next_expr), |
