diff options
| author | Basile Desloges <basile.desloges@gmail.com> | 2017-09-28 16:44:23 +0200 |
|---|---|---|
| committer | Basile Desloges <basile.desloges@gmail.com> | 2017-09-29 15:41:26 +0200 |
| commit | bcda69572064cfcc679ac4dc7ad0b0a369e3b861 (patch) | |
| tree | 8c518049c17e70229e378bd4f28619e6315e380e | |
| parent | d514263ce3b136775f6e8ec4b94cc1073d16c892 (diff) | |
| download | rust-bcda69572064cfcc679ac4dc7ad0b0a369e3b861.tar.gz rust-bcda69572064cfcc679ac4dc7ad0b0a369e3b861.zip | |
mir-borrowck: Move span_label calls for `cannot_assign_to_borrowed()` inside `borrowck_errors.rs`
| -rw-r--r-- | src/librustc_borrowck/borrowck/check_loans.rs | 8 | ||||
| -rw-r--r-- | src/librustc_mir/borrow_check.rs | 8 | ||||
| -rw-r--r-- | src/librustc_mir/util/borrowck_errors.rs | 11 |
3 files changed, 10 insertions, 17 deletions
diff --git a/src/librustc_borrowck/borrowck/check_loans.rs b/src/librustc_borrowck/borrowck/check_loans.rs index 985257c2810..0036a74c861 100644 --- a/src/librustc_borrowck/borrowck/check_loans.rs +++ b/src/librustc_borrowck/borrowck/check_loans.rs @@ -865,13 +865,7 @@ impl<'a, 'tcx> CheckLoanCtxt<'a, 'tcx> { loan_path: &LoanPath<'tcx>, loan: &Loan) { self.bccx.cannot_assign_to_borrowed( - span, &self.bccx.loan_path_to_string(loan_path), Origin::Ast) - .span_label(loan.span, - format!("borrow of `{}` occurs here", - self.bccx.loan_path_to_string(loan_path))) - .span_label(span, - format!("assignment to borrowed `{}` occurs here", - self.bccx.loan_path_to_string(loan_path))) + span, loan.span, &self.bccx.loan_path_to_string(loan_path), Origin::Ast) .emit(); } } diff --git a/src/librustc_mir/borrow_check.rs b/src/librustc_mir/borrow_check.rs index 902e2de841f..d2ab00a46c7 100644 --- a/src/librustc_mir/borrow_check.rs +++ b/src/librustc_mir/borrow_check.rs @@ -991,14 +991,8 @@ 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); - - err.span_label(borrow_span, format!("borrow of `{}` occurs here", describe_lvalue)); - err.span_label(span, format!("assignment to borrowed `{}` occurs here", describe_lvalue)); + span, self.retrieve_borrow_span(loan), &self.describe_lvalue(lvalue), Origin::Mir); err.emit(); } diff --git a/src/librustc_mir/util/borrowck_errors.rs b/src/librustc_mir/util/borrowck_errors.rs index 9de30726586..7aec361e892 100644 --- a/src/librustc_mir/util/borrowck_errors.rs +++ b/src/librustc_mir/util/borrowck_errors.rs @@ -140,12 +140,17 @@ pub trait BorrowckErrors { desc_new, msg_new, kind_new, noun_old, kind_old, msg_old, OGN=o) } - fn cannot_assign_to_borrowed(&self, span: Span, desc: &str, o: Origin) + fn cannot_assign_to_borrowed(&self, span: Span, borrow_span: Span, desc: &str, o: Origin) -> DiagnosticBuilder { - struct_span_err!(self, span, E0506, + let mut err = struct_span_err!(self, span, E0506, "cannot assign to `{}` because it is borrowed{OGN}", - desc, OGN=o) + desc, OGN=o); + + err.span_label(borrow_span, format!("borrow of `{}` occurs here", desc)); + err.span_label(span, format!("assignment to borrowed `{}` occurs here", desc)); + + err } fn cannot_move_into_closure(&self, span: Span, desc: &str, o: Origin) |
