Skip to content

Commit ed59a86

Browse files
committed
Add span labels for E0505 for MIR borrowck
1 parent 1797a94 commit ed59a86

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/librustc_mir/borrow_check.rs

+12-7
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ impl<'c, 'b, 'a: 'b+'c, 'gcx, 'tcx: 'a> MirBorrowckCtxt<'c, 'b, 'a, 'gcx, 'tcx>
408408
self.each_borrow_involving_path(
409409
context, lvalue_span.0, flow_state, |this, _idx, borrow| {
410410
if !borrow.compatible_with(BorrowKind::Mut) {
411-
this.report_move_out_while_borrowed(context, lvalue_span);
411+
this.report_move_out_while_borrowed(context, lvalue_span, borrow);
412412
Control::Break
413413
} else {
414414
Control::Continue
@@ -907,12 +907,17 @@ impl<'c, 'b, 'a: 'b+'c, 'gcx, 'tcx: 'a> MirBorrowckCtxt<'c, 'b, 'a, 'gcx, 'tcx>
907907

908908
fn report_move_out_while_borrowed(&mut self,
909909
_context: Context,
910-
(lvalue, span): (&Lvalue, Span)) {
911-
let mut err = self.tcx.cannot_move_when_borrowed(
912-
span, &self.describe_lvalue(lvalue), Origin::Mir);
913-
// FIXME 1: add span_label for "borrow of `()` occurs here"
914-
// FIXME 2: add span_label for "move out of `{}` occurs here"
915-
err.emit();
910+
(lvalue, span): (&Lvalue, Span),
911+
borrow: &BorrowData) {
912+
self.tcx.cannot_move_when_borrowed(span,
913+
&self.describe_lvalue(lvalue),
914+
Origin::Mir)
915+
.span_label(self.retrieve_borrow_span(borrow),
916+
format!("borrow of `{}` occurs here",
917+
self.describe_lvalue(&borrow.lvalue)))
918+
.span_label(span, format!("move out of `{}` occurs here",
919+
self.describe_lvalue(lvalue)))
920+
.emit();
916921
}
917922

918923
fn report_use_while_mutably_borrowed(&mut self,

0 commit comments

Comments
 (0)