diff options
| author | Basile Desloges <basile.desloges@gmail.com> | 2017-09-24 15:37:41 +0200 |
|---|---|---|
| committer | Basile Desloges <basile.desloges@gmail.com> | 2017-09-26 19:09:56 +0200 |
| commit | e28c73d71fd9a31de37daf45c086e2a8b05ec05c (patch) | |
| tree | 76a4afe89112680638ace512558d3cebc82373fc | |
| parent | 34d36c0168e1604adfe1a512fb9c7817c38d507e (diff) | |
| download | rust-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.rs | 8 |
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(); } |
