Rollup merge of #35552 - theypsilon:master, r=jonathandturner

Update error message E0384 to new format

Part of #35233
Fixes #35184

r? @jonathandturner
This commit is contained in:
Jonathan Turner 2016-08-11 06:34:00 -07:00 committed by GitHub
commit b758688505
6 changed files with 17 additions and 9 deletions

View File

@ -760,12 +760,16 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> {
lp: &LoanPath<'tcx>,
assign:
&move_data::Assignment) {
struct_span_err!(
let mut err = struct_span_err!(
self.tcx.sess, span, E0384,
"re-assignment of immutable variable `{}`",
self.loan_path_to_string(lp))
.span_note(assign.span, "prior assignment occurs here")
.emit();
self.loan_path_to_string(lp));
err.span_label(span, &format!("re-assignment of immutable variable"));
if span != assign.span {
err.span_label(assign.span, &format!("first assignment to `{}`",
self.loan_path_to_string(lp)));
}
err.emit();
}
pub fn span_err(&self, s: Span, m: &str) {

View File

@ -18,11 +18,12 @@ fn foo(x: isize) { println!("{}", x); }
target_arch = "aarch64"))]
pub fn main() {
let x: isize;
x = 1; //~ NOTE prior assignment occurs here
x = 1; //~ NOTE first assignment
foo(x);
unsafe {
asm!("mov $1, $0" : "=r"(x) : "r"(5));
//~^ ERROR re-assignment of immutable variable `x`
//~| NOTE re-assignment of immutable
//~| NOTE in this expansion of asm!
}
foo(x);

View File

@ -10,9 +10,10 @@
fn test() {
let v: isize;
v = 1; //~ NOTE prior assignment occurs here
v = 1; //~ NOTE first assignment
println!("v={}", v);
v = 2; //~ ERROR re-assignment of immutable variable
//~| NOTE re-assignment of immutable
println!("v={}", v);
}

View File

@ -12,7 +12,7 @@ fn test() {
let v: isize;
loop {
v = 1; //~ ERROR re-assignment of immutable variable
//~^ NOTE prior assignment occurs here
//~^ NOTE re-assignment of immutable variable
v.clone(); // just to prevent liveness warnings
}
}

View File

@ -10,8 +10,9 @@
fn test() {
let v: isize;
v = 2; //~ NOTE prior assignment occurs here
v = 2; //~ NOTE first assignment
v += 1; //~ ERROR re-assignment of immutable variable
//~| NOTE re-assignment of immutable
v.clone();
}

View File

@ -9,9 +9,10 @@
// except according to those terms.
fn test() {
let v: isize = 1; //~ NOTE prior assignment occurs here
let v: isize = 1; //~ NOTE first assignment
v.clone();
v = 2; //~ ERROR re-assignment of immutable variable
//~| NOTE re-assignment of immutable
v.clone();
}