Skip to content

Commit 5c8066b

Browse files
committed
mir-borrowck: Move span_label calls for cannot_use_when_mutably_borrowed() inside borrowck_errors.rs
1 parent bcda695 commit 5c8066b

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

src/librustc_borrowck/borrowck/check_loans.rs

+4-8
Original file line numberDiff line numberDiff line change
@@ -640,14 +640,10 @@ impl<'a, 'tcx> CheckLoanCtxt<'a, 'tcx> {
640640
UseOk => { }
641641
UseWhileBorrowed(loan_path, loan_span) => {
642642
let desc = self.bccx.loan_path_to_string(copy_path);
643-
self.bccx.cannot_use_when_mutably_borrowed(span, &desc, Origin::Ast)
644-
.span_label(loan_span,
645-
format!("borrow of `{}` occurs here",
646-
&self.bccx.loan_path_to_string(&loan_path))
647-
)
648-
.span_label(span,
649-
format!("use of borrowed `{}`",
650-
&self.bccx.loan_path_to_string(&loan_path)))
643+
self.bccx.cannot_use_when_mutably_borrowed(
644+
span, &desc,
645+
loan_span, &self.bccx.loan_path_to_string(&loan_path),
646+
Origin::Ast)
651647
.emit();
652648
}
653649
}

src/librustc_mir/borrow_check.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -931,14 +931,11 @@ impl<'c, 'b, 'a: 'b+'c, 'gcx, 'tcx: 'a> MirBorrowckCtxt<'c, 'b, 'a, 'gcx, 'tcx>
931931
_context: Context,
932932
(lvalue, span): (&Lvalue, Span),
933933
borrow : &BorrowData) {
934-
let described_lvalue = self.describe_lvalue(lvalue);
935-
let borrow_span = self.retrieve_borrow_span(borrow);
936934

937935
let mut err = self.tcx.cannot_use_when_mutably_borrowed(
938-
span, &described_lvalue, Origin::Mir);
939-
940-
err.span_label(borrow_span, format!("borrow of `{}` occurs here", described_lvalue));
941-
err.span_label(span, format!("use of borrowed `{}`", described_lvalue));
936+
span, &self.describe_lvalue(lvalue),
937+
self.retrieve_borrow_span(borrow), &self.describe_lvalue(&borrow.lvalue),
938+
Origin::Mir);
942939

943940
err.emit();
944941
}

src/librustc_mir/util/borrowck_errors.rs

+13-3
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,22 @@ pub trait BorrowckErrors {
5757
desc, OGN=o)
5858
}
5959

60-
fn cannot_use_when_mutably_borrowed(&self, span: Span, desc: &str, o: Origin)
60+
fn cannot_use_when_mutably_borrowed(&self,
61+
span: Span,
62+
desc: &str,
63+
borrow_span: Span,
64+
borrow_desc: &str,
65+
o: Origin)
6166
-> DiagnosticBuilder
6267
{
63-
struct_span_err!(self, span, E0503,
68+
let mut err = struct_span_err!(self, span, E0503,
6469
"cannot use `{}` because it was mutably borrowed{OGN}",
65-
desc, OGN=o)
70+
desc, OGN=o);
71+
72+
err.span_label(borrow_span, format!("borrow of `{}` occurs here", borrow_desc));
73+
err.span_label(span, format!("use of borrowed `{}`", borrow_desc));
74+
75+
err
6676
}
6777

6878
fn cannot_act_on_uninitialized_variable(&self,

0 commit comments

Comments
 (0)