@@ -364,11 +364,12 @@ impl<'a, 'gcx, 'tcx> ExprUseVisitor<'a, 'gcx, 'tcx> {
364364 }
365365
366366 fn mutate_expr ( & mut self ,
367+ span : Span ,
367368 assignment_expr : & hir:: Expr ,
368369 expr : & hir:: Expr ,
369370 mode : MutateMode ) {
370371 let cmt = return_if_err ! ( self . mc. cat_expr( expr) ) ;
371- self . delegate . mutate ( assignment_expr. id , assignment_expr . span , & cmt, mode) ;
372+ self . delegate . mutate ( assignment_expr. id , span, & cmt, mode) ;
372373 self . walk_expr ( expr) ;
373374 }
374375
@@ -472,12 +473,16 @@ impl<'a, 'gcx, 'tcx> ExprUseVisitor<'a, 'gcx, 'tcx> {
472473 if o. is_indirect {
473474 self . consume_expr ( output) ;
474475 } else {
475- self . mutate_expr ( expr, output,
476- if o. is_rw {
477- MutateMode :: WriteAndRead
478- } else {
479- MutateMode :: JustWrite
480- } ) ;
476+ self . mutate_expr (
477+ output. span ,
478+ expr,
479+ output,
480+ if o. is_rw {
481+ MutateMode :: WriteAndRead
482+ } else {
483+ MutateMode :: JustWrite
484+ } ,
485+ ) ;
481486 }
482487 }
483488 self . consume_exprs ( inputs) ;
@@ -515,7 +520,7 @@ impl<'a, 'gcx, 'tcx> ExprUseVisitor<'a, 'gcx, 'tcx> {
515520 }
516521
517522 hir:: ExprKind :: Assign ( ref lhs, ref rhs) => {
518- self . mutate_expr ( expr, & lhs, MutateMode :: JustWrite ) ;
523+ self . mutate_expr ( expr. span , expr , & lhs, MutateMode :: JustWrite ) ;
519524 self . consume_expr ( & rhs) ;
520525 }
521526
@@ -527,7 +532,7 @@ impl<'a, 'gcx, 'tcx> ExprUseVisitor<'a, 'gcx, 'tcx> {
527532 if self . mc . tables . is_method_call ( expr) {
528533 self . consume_expr ( lhs) ;
529534 } else {
530- self . mutate_expr ( expr, & lhs, MutateMode :: WriteAndRead ) ;
535+ self . mutate_expr ( expr. span , expr , & lhs, MutateMode :: WriteAndRead ) ;
531536 }
532537 self . consume_expr ( & rhs) ;
533538 }
0 commit comments