diff --git a/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs b/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs index bfb7e793eee..948c1ac0b13 100644 --- a/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs +++ b/src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs @@ -28,8 +28,6 @@ impl<'cx, 'gcx, 'tcx> MirBorrowckCtxt<'cx, 'gcx, 'tcx> { if let Some(cause) = regioncx.why_region_contains_point(borrow.region, context.loc) { let mir = self.mir; - cause.label_diagnostic(mir, err); - match *cause.root_cause() { Cause::LiveVar(local, location) => { match find_regular_use(&mir, regioncx, borrow, location, local) { @@ -72,7 +70,9 @@ impl<'cx, 'gcx, 'tcx> MirBorrowckCtxt<'cx, 'gcx, 'tcx> { } } - _ => (), + _ => { + cause.label_diagnostic(mir, err); + } } } } diff --git a/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr b/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr index b161a068c04..3c685ce111a 100644 --- a/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr +++ b/src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr @@ -1,13 +1,13 @@ error[E0506]: cannot assign to `x` because it is borrowed - --> $DIR/maybe-initialized-drop-implicit-fragment-drop.rs:31:5 + --> $DIR/maybe-initialized-drop-implicit-fragment-drop.rs:32:5 | -27 | let wrap = Wrap { p: &mut x }; +28 | let wrap = Wrap { p: &mut x }; | ------ borrow of `x` occurs here ... -31 | x = 1; //~ ERROR cannot assign to `x` because it is borrowed [E0506] +32 | x = 1; //~ ERROR cannot assign to `x` because it is borrowed [E0506] | ^^^^^ assignment to borrowed `x` occurs here -32 | // FIXME ^ Should not error in the future with implicit dtors, only manually implemented ones -33 | } +33 | // FIXME ^ Should not error in the future with implicit dtors, only manually implemented ones +34 | } | - borrow later used here, when `foo` is dropped error: aborting due to previous error