about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBasile Desloges <basile.desloges@gmail.com>2017-09-24 15:37:41 +0200
committerBasile Desloges <basile.desloges@gmail.com>2017-09-26 19:09:56 +0200
commite28c73d71fd9a31de37daf45c086e2a8b05ec05c (patch)
tree76a4afe89112680638ace512558d3cebc82373fc
parent34d36c0168e1604adfe1a512fb9c7817c38d507e (diff)
downloadrust-e28c73d71fd9a31de37daf45c086e2a8b05ec05c.tar.gz
rust-e28c73d71fd9a31de37daf45c086e2a8b05ec05c.zip
mir-borrowck: Add span labels to `report_illegal_mutation_of_borrowed()`
-rw-r--r--src/librustc_mir/borrow_check.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/librustc_mir/borrow_check.rs b/src/librustc_mir/borrow_check.rs
index f324e20b26d..82e125a0dd2 100644
--- a/src/librustc_mir/borrow_check.rs
+++ b/src/librustc_mir/borrow_check.rs
@@ -979,9 +979,15 @@ impl<'c, 'b, 'a: 'b+'c, 'gcx, 'tcx: 'a> MirBorrowckCtxt<'c, 'b, 'a, 'gcx, 'tcx>
                                            _: Context,
                                            (lvalue, span): (&Lvalue, Span),
                                            loan: &BorrowData) {
+        let describe_lvalue = self.describe_lvalue(lvalue);
+        let borrow_span = self.retrieve_borrow_span(loan);
+
         let mut err = self.tcx.cannot_assign_to_borrowed(
             span, &self.describe_lvalue(lvalue), Origin::Mir);
-        // FIXME: add span labels for borrow and assignment points
+
+        err.span_label(borrow_span, format!("borrow of `{}` occurs here", describe_lvalue));
+        err.span_label(span, format!("assignment to borrowed `{}` occurs here", describe_lvalue));
+
         err.emit();
     }