X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibrustc%2Fhir%2Flowering.rs;h=bf421da61e4437ce8868e47e53a6bbdf5c71a421;hb=ea3d8f510dfe18870b8b0b2bb5bf007fe914c262;hp=45628e2b6f3b80f2e336b19cf8bea0dd405e044a;hpb=b3303edba67981ed087fc89c4302985d022589d0;p=rust.git diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index 45628e2b6f3..bf421da61e4 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -597,7 +597,7 @@ fn expect_full_def(&mut self, id: NodeId) -> Def { }) } - fn expect_full_def_from_use(&mut self, id: NodeId) -> impl Iterator { + fn expect_full_def_from_use(&mut self, id: NodeId) -> impl Iterator { self.resolver.get_import(id).present_items().map(|pr| { if pr.unresolved_segments() != 0 { bug!("path not fully resolved: {:?}", pr); @@ -990,7 +990,7 @@ fn lower_loop_destination(&mut self, destination: Option<(NodeId, Label)>) -> hi None => { self.loop_scopes .last() - .map(|innermost_loop_id| *innermost_loop_id) + .cloned() .map(|id| Ok(self.lower_node_id(id).node_id)) .unwrap_or(Err(hir::LoopIdError::OutsideLoopScope)) .into() @@ -4058,16 +4058,16 @@ fn lower_expr(&mut self, e: &Expr) -> hir::Expr { // expand let head = self.lower_expr(head); let head_sp = head.span; + let desugared_span = self.allow_internal_unstable( + CompilerDesugaringKind::ForLoop, + head_sp, + ); let iter = self.str_to_ident("iter"); let next_ident = self.str_to_ident("__next"); - let next_sp = self.allow_internal_unstable( - CompilerDesugaringKind::ForLoop, - head_sp, - ); let next_pat = self.pat_ident_binding_mode( - next_sp, + desugared_span, next_ident, hir::BindingAnnotation::Mutable, ); @@ -4096,8 +4096,11 @@ fn lower_expr(&mut self, e: &Expr) -> hir::Expr { }; // `mut iter` - let iter_pat = - self.pat_ident_binding_mode(head_sp, iter, hir::BindingAnnotation::Mutable); + let iter_pat = self.pat_ident_binding_mode( + desugared_span, + iter, + hir::BindingAnnotation::Mutable + ); // `match ::std::iter::Iterator::next(&mut iter) { ... }` let match_expr = { @@ -4126,8 +4129,12 @@ fn lower_expr(&mut self, e: &Expr) -> hir::Expr { let next_expr = P(self.expr_ident(head_sp, next_ident, next_pat.id)); // `let mut __next` - let next_let = - self.stmt_let_pat(head_sp, None, next_pat, hir::LocalSource::ForLoopDesugar); + let next_let = self.stmt_let_pat( + desugared_span, + None, + next_pat, + hir::LocalSource::ForLoopDesugar, + ); // `let = __next` let pat = self.lower_pat(pat);