diff --git a/src/librustc/hir/intravisit.rs b/src/librustc/hir/intravisit.rs index 26e287037f72c..cf2971cd8f1cf 100644 --- a/src/librustc/hir/intravisit.rs +++ b/src/librustc/hir/intravisit.rs @@ -1056,9 +1056,9 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) { walk_list!(visitor, visit_label, opt_label); visitor.visit_block(block); } - ExprKind::Assign(ref left_hand_expression, ref right_hand_expression) => { - visitor.visit_expr(right_hand_expression); - visitor.visit_expr(left_hand_expression) + ExprKind::Assign(ref lhs, ref rhs, _) => { + visitor.visit_expr(rhs); + visitor.visit_expr(lhs) } ExprKind::AssignOp(_, ref left_expression, ref right_expression) => { visitor.visit_expr(right_expression); diff --git a/src/librustc/hir/lowering/expr.rs b/src/librustc/hir/lowering/expr.rs index 08b00ce69addb..cfcc1f3d3bcff 100644 --- a/src/librustc/hir/lowering/expr.rs +++ b/src/librustc/hir/lowering/expr.rs @@ -112,8 +112,8 @@ impl LoweringContext<'_, '_> { opt_label.is_some()), self.lower_label(opt_label)) } - ExprKind::Assign(ref el, ref er) => { - hir::ExprKind::Assign(P(self.lower_expr(el)), P(self.lower_expr(er))) + ExprKind::Assign(ref el, ref er, span) => { + hir::ExprKind::Assign(P(self.lower_expr(el)), P(self.lower_expr(er)), span) } ExprKind::AssignOp(op, ref el, ref er) => hir::ExprKind::AssignOp( self.lower_binop(op), @@ -1084,7 +1084,7 @@ impl LoweringContext<'_, '_> { let next_expr = P(self.expr_ident(pat.span, next_ident, next_pat_hid)); let assign = P(self.expr( pat.span, - hir::ExprKind::Assign(next_expr, val_expr), + hir::ExprKind::Assign(next_expr, val_expr, pat.span), ThinVec::new(), )); let some_pat = self.pat_some(pat.span, val_pat); diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs index ff6801a85c7e1..3d490fcc9605d 100644 --- a/src/librustc/hir/mod.rs +++ b/src/librustc/hir/mod.rs @@ -1659,7 +1659,7 @@ pub enum ExprKind { Block(P, Option