about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2017-12-14 15:01:05 -0500
committerNiko Matsakis <niko@alum.mit.edu>2017-12-20 14:38:11 -0500
commite28d03f38ba333fb36ab002e99fc33582134e365 (patch)
treef5e48e18de86294ea107882ac0003d002e84095e
parent3a185a510db5e5334d56d804e50efd41fc1e220d (diff)
downloadrust-e28d03f38ba333fb36ab002e99fc33582134e365.tar.gz
rust-e28d03f38ba333fb36ab002e99fc33582134e365.zip
only dump causes if we have nothing better
-rw-r--r--src/librustc_mir/borrow_check/nll/explain_borrow/mod.rs6
-rw-r--r--src/test/ui/nll/maybe-initialized-drop-implicit-fragment-drop.stderr10
2 files changed, 8 insertions, 8 deletions
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