diff options
| author | Felix S. Klock II <pnkfelix@pnkfx.org> | 2018-06-12 18:01:48 +0200 |
|---|---|---|
| committer | Felix S. Klock II <pnkfelix@pnkfx.org> | 2018-06-19 19:38:37 +0200 |
| commit | 2d4df5b53e92513ddd250be545ff7c015135451b (patch) | |
| tree | 88f05e26284de6b1fdc66621d44916efbf95bec1 /src | |
| parent | 7fd4b52b1b83195594ef88c193fdd409b68f19ef (diff) | |
| download | rust-2d4df5b53e92513ddd250be545ff7c015135451b.tar.gz rust-2d4df5b53e92513ddd250be545ff7c015135451b.zip | |
NLL: Updates to diagnostic output in `test/ui`.
Diffstat (limited to 'src')
31 files changed, 163 insertions, 103 deletions
diff --git a/src/test/ui/augmented-assignments.nll.stderr b/src/test/ui/augmented-assignments.nll.stderr index deb2e7ed4a3..592f666eff8 100644 --- a/src/test/ui/augmented-assignments.nll.stderr +++ b/src/test/ui/augmented-assignments.nll.stderr @@ -17,6 +17,9 @@ LL | | x; //~ value moved here error[E0596]: cannot borrow immutable item `y` as mutable --> $DIR/augmented-assignments.rs:30:5 | +LL | let y = Int(2); + | - help: consider changing this to be mutable: `mut y` +LL | //~^ consider changing this to `mut y` LL | y //~ error: cannot borrow immutable local variable `y` as mutable | ^ cannot borrow as mutable diff --git a/src/test/ui/borrowck/issue-45983.nll.stderr b/src/test/ui/borrowck/issue-45983.nll.stderr index 1aec71fee34..a008a408d97 100644 --- a/src/test/ui/borrowck/issue-45983.nll.stderr +++ b/src/test/ui/borrowck/issue-45983.nll.stderr @@ -14,13 +14,13 @@ error[E0594]: cannot assign to immutable item `x` --> $DIR/issue-45983.rs:17:18 | LL | give_any(|y| x = Some(y)); - | ^^^^^^^^^^^ cannot mutate - | - = note: the value which is causing this path not to be mutable is...: `x` + | ^^^^^^^^^^^ cannot assign error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/issue-45983.rs:17:14 | +LL | let x = None; + | - help: consider changing this to be mutable: `mut x` LL | give_any(|y| x = Some(y)); | ^^^^^^^^^^^^^^^ cannot borrow as mutable diff --git a/src/test/ui/borrowck/mut-borrow-of-mut-ref.nll.stderr b/src/test/ui/borrowck/mut-borrow-of-mut-ref.nll.stderr index f8b84bce04e..0674c823016 100644 --- a/src/test/ui/borrowck/mut-borrow-of-mut-ref.nll.stderr +++ b/src/test/ui/borrowck/mut-borrow-of-mut-ref.nll.stderr @@ -1,6 +1,8 @@ error[E0596]: cannot borrow immutable item `b` as mutable --> $DIR/mut-borrow-of-mut-ref.rs:18:7 | +LL | fn f(b: &mut i32) { + | - help: consider changing this to be mutable: `mut b` LL | g(&mut b) //~ ERROR cannot borrow | ^^^^^^ cannot borrow as mutable diff --git a/src/test/ui/codemap_tests/huge_multispan_highlight.nll.stderr b/src/test/ui/codemap_tests/huge_multispan_highlight.nll.stderr index 4526616e488..da0b201f5d4 100644 --- a/src/test/ui/codemap_tests/huge_multispan_highlight.nll.stderr +++ b/src/test/ui/codemap_tests/huge_multispan_highlight.nll.stderr @@ -1,6 +1,9 @@ error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/huge_multispan_highlight.rs:100:13 | +LL | let x = "foo"; + | - help: consider changing this to be mutable: `mut x` +... LL | let y = &mut x; //~ ERROR cannot borrow | ^^^^^^ cannot borrow as mutable diff --git a/src/test/ui/did_you_mean/issue-31424.nll.stderr b/src/test/ui/did_you_mean/issue-31424.nll.stderr index 6b63f64c699..21c5e3608c0 100644 --- a/src/test/ui/did_you_mean/issue-31424.nll.stderr +++ b/src/test/ui/did_you_mean/issue-31424.nll.stderr @@ -7,6 +7,8 @@ LL | (&mut self).bar(); //~ ERROR cannot borrow error[E0596]: cannot borrow immutable item `self` as mutable --> $DIR/issue-31424.rs:23:9 | +LL | fn bar(self: &mut Self) { + | ---- help: consider changing this to be mutable: `mut self` LL | (&mut self).bar(); //~ ERROR cannot borrow | ^^^^^^^^^^^ cannot borrow as mutable diff --git a/src/test/ui/did_you_mean/issue-34126.nll.stderr b/src/test/ui/did_you_mean/issue-34126.nll.stderr index 81f858f6bfc..8dedb6ec4db 100644 --- a/src/test/ui/did_you_mean/issue-34126.nll.stderr +++ b/src/test/ui/did_you_mean/issue-34126.nll.stderr @@ -2,7 +2,10 @@ error[E0596]: cannot borrow immutable item `self` as mutable --> $DIR/issue-34126.rs:16:18 | LL | self.run(&mut self); //~ ERROR cannot borrow - | ^^^^^^^^^ cannot borrow as mutable + | ^^^^^^^^^ + | | + | cannot borrow as mutable + | try removing `&mut` here error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable --> $DIR/issue-34126.rs:16:18 diff --git a/src/test/ui/did_you_mean/issue-34337.nll.stderr b/src/test/ui/did_you_mean/issue-34337.nll.stderr index 258e1bb1ad7..d2271e8e7de 100644 --- a/src/test/ui/did_you_mean/issue-34337.nll.stderr +++ b/src/test/ui/did_you_mean/issue-34337.nll.stderr @@ -2,7 +2,10 @@ error[E0596]: cannot borrow immutable item `key` as mutable --> $DIR/issue-34337.rs:16:9 | LL | get(&mut key); //~ ERROR cannot borrow - | ^^^^^^^^ cannot borrow as mutable + | ^^^^^^^^ + | | + | cannot borrow as mutable + | try removing `&mut` here error: aborting due to previous error diff --git a/src/test/ui/did_you_mean/issue-35937.nll.stderr b/src/test/ui/did_you_mean/issue-35937.nll.stderr index 40b640b63cf..f070921558f 100644 --- a/src/test/ui/did_you_mean/issue-35937.nll.stderr +++ b/src/test/ui/did_you_mean/issue-35937.nll.stderr @@ -1,10 +1,10 @@ error[E0596]: cannot borrow immutable item `f.v` as mutable --> $DIR/issue-35937.rs:17:5 | +LL | let f = Foo { v: Vec::new() }; + | - help: consider changing this to be mutable: `mut f` LL | f.v.push("cat".to_string()); //~ ERROR cannot borrow | ^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `f` error[E0384]: cannot assign twice to immutable variable `s.x` --> $DIR/issue-35937.rs:26:5 diff --git a/src/test/ui/did_you_mean/issue-37139.nll.stderr b/src/test/ui/did_you_mean/issue-37139.nll.stderr index 29c7192a98b..e51a1baad25 100644 --- a/src/test/ui/did_you_mean/issue-37139.nll.stderr +++ b/src/test/ui/did_you_mean/issue-37139.nll.stderr @@ -2,7 +2,10 @@ error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/issue-37139.rs:22:18 | LL | test(&mut x); //~ ERROR cannot borrow immutable - | ^^^^^^ cannot borrow as mutable + | ^^^^^^ + | | + | cannot borrow as mutable + | try removing `&mut` here error: aborting due to previous error diff --git a/src/test/ui/did_you_mean/issue-38147-1.nll.stderr b/src/test/ui/did_you_mean/issue-38147-1.nll.stderr index 8e442677951..76b8c8ebf60 100644 --- a/src/test/ui/did_you_mean/issue-38147-1.nll.stderr +++ b/src/test/ui/did_you_mean/issue-38147-1.nll.stderr @@ -1,10 +1,10 @@ error[E0596]: cannot borrow immutable item `*self.s` as mutable --> $DIR/issue-38147-1.rs:27:9 | +LL | fn f(&self) { + | ----- help: consider changing this to be a mutable reference: `&mut Foo<'_>` LL | self.s.push('x'); //~ ERROR cannot borrow data mutably - | ^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*self` + | ^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to previous error diff --git a/src/test/ui/did_you_mean/issue-38147-4.nll.stderr b/src/test/ui/did_you_mean/issue-38147-4.nll.stderr index 6808222cc32..c875957623b 100644 --- a/src/test/ui/did_you_mean/issue-38147-4.nll.stderr +++ b/src/test/ui/did_you_mean/issue-38147-4.nll.stderr @@ -1,10 +1,10 @@ error[E0596]: cannot borrow immutable item `*f.s` as mutable --> $DIR/issue-38147-4.rs:16:5 | +LL | fn f(x: usize, f: &Foo) { + | ---- help: consider changing this to be a mutable reference: `&mut Foo<'_>` LL | f.s.push('x'); //~ ERROR cannot borrow data mutably - | ^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*f` + | ^^^ `f` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to previous error diff --git a/src/test/ui/did_you_mean/issue-39544.nll.stderr b/src/test/ui/did_you_mean/issue-39544.nll.stderr index f5f5b675e77..02c1debca69 100644 --- a/src/test/ui/did_you_mean/issue-39544.nll.stderr +++ b/src/test/ui/did_you_mean/issue-39544.nll.stderr @@ -1,96 +1,100 @@ error[E0596]: cannot borrow immutable item `z.x` as mutable --> $DIR/issue-39544.rs:21:13 | +LL | let z = Z { x: X::Y }; + | - help: consider changing this to be mutable: `mut z` LL | let _ = &mut z.x; //~ ERROR cannot borrow | ^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `z` error[E0596]: cannot borrow immutable item `self.x` as mutable --> $DIR/issue-39544.rs:26:17 | +LL | fn foo<'z>(&'z self) { + | -------- help: consider changing this to be a mutable reference: `&mut Z` LL | let _ = &mut self.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*self` + | ^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `self.x` as mutable --> $DIR/issue-39544.rs:30:17 | +LL | fn foo1(&self, other: &Z) { + | ----- help: consider changing this to be a mutable reference: `&mut Z` LL | let _ = &mut self.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*self` + | ^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `other.x` as mutable --> $DIR/issue-39544.rs:31:17 | +LL | fn foo1(&self, other: &Z) { + | -- help: consider changing this to be a mutable reference: `&mut Z` +LL | let _ = &mut self.x; //~ ERROR cannot borrow LL | let _ = &mut other.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*other` + | ^^^^^^^^^^^^ `other` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `self.x` as mutable --> $DIR/issue-39544.rs:35:17 | +LL | fn foo2<'a>(&'a self, other: &Z) { + | -------- help: consider changing this to be a mutable reference: `&mut Z` LL | let _ = &mut self.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*self` + | ^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `other.x` as mutable --> $DIR/issue-39544.rs:36:17 | +LL | fn foo2<'a>(&'a self, other: &Z) { + | -- help: consider changing this to be a mutable reference: `&mut Z` +LL | let _ = &mut self.x; //~ ERROR cannot borrow LL | let _ = &mut other.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*other` + | ^^^^^^^^^^^^ `other` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `self.x` as mutable --> $DIR/issue-39544.rs:40:17 | +LL | fn foo3<'a>(self: &'a Self, other: &Z) { + | -------- help: consider changing this to be a mutable reference: `&mut Z` LL | let _ = &mut self.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*self` + | ^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `other.x` as mutable --> $DIR/issue-39544.rs:41:17 | +LL | fn foo3<'a>(self: &'a Self, other: &Z) { + | -- help: consider changing this to be a mutable reference: `&mut Z` +LL | let _ = &mut self.x; //~ ERROR cannot borrow LL | let _ = &mut other.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*other` + | ^^^^^^^^^^^^ `other` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `other.x` as mutable --> $DIR/issue-39544.rs:45:17 | +LL | fn foo4(other: &Z) { + | -- help: consider changing this to be a mutable reference: `&mut Z` LL | let _ = &mut other.x; //~ ERROR cannot borrow - | ^^^^^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*other` + | ^^^^^^^^^^^^ `other` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `z.x` as mutable --> $DIR/issue-39544.rs:51:13 | +LL | pub fn with_arg(z: Z, w: &Z) { + | - help: consider changing this to be mutable: `mut z` LL | let _ = &mut z.x; //~ ERROR cannot borrow | ^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `z` error[E0596]: cannot borrow immutable item `w.x` as mutable --> $DIR/issue-39544.rs:52:13 | +LL | pub fn with_arg(z: Z, w: &Z) { + | -- help: consider changing this to be a mutable reference: `&mut Z` +LL | let _ = &mut z.x; //~ ERROR cannot borrow LL | let _ = &mut w.x; //~ ERROR cannot borrow - | ^^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*w` + | ^^^^^^^^ `w` is a `&` reference, so the data it refers to cannot be borrowed as mutable -error[E0594]: cannot assign to immutable item `*x.0` +error[E0594]: cannot assign to `*x.0` which is behind a `&` reference --> $DIR/issue-39544.rs:58:5 | LL | *x.0 = 1; - | ^^^^^^^^ cannot mutate + | ^^^^^^^^ cannot assign error: aborting due to 12 previous errors diff --git a/src/test/ui/did_you_mean/issue-40823.nll.stderr b/src/test/ui/did_you_mean/issue-40823.nll.stderr index 489e1c39c46..1fd75de8128 100644 --- a/src/test/ui/did_you_mean/issue-40823.nll.stderr +++ b/src/test/ui/did_you_mean/issue-40823.nll.stderr @@ -1,8 +1,10 @@ error[E0596]: cannot borrow immutable item `*buf` as mutable --> $DIR/issue-40823.rs:13:5 | +LL | let mut buf = &[1, 2, 3, 4]; + | ------------- help: consider changing this to be a mutable reference: `&mut [1, 2, 3, 4]` LL | buf.iter_mut(); //~ ERROR cannot borrow immutable borrowed content - | ^^^ cannot borrow as mutable + | ^^^ `buf` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to previous error diff --git a/src/test/ui/error-codes/E0389.nll.stderr b/src/test/ui/error-codes/E0389.nll.stderr index 0525e16239d..66e46dfe29d 100644 --- a/src/test/ui/error-codes/E0389.nll.stderr +++ b/src/test/ui/error-codes/E0389.nll.stderr @@ -1,4 +1,4 @@ -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `fancy_ref.num` which is behind a `&` reference --> $DIR/E0389.rs:18:5 | LL | let fancy_ref = &(&mut fancy); diff --git a/src/test/ui/issue-36400.nll.stderr b/src/test/ui/issue-36400.nll.stderr index 80459937479..be10b1d517b 100644 --- a/src/test/ui/issue-36400.nll.stderr +++ b/src/test/ui/issue-36400.nll.stderr @@ -1,10 +1,10 @@ error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/issue-36400.rs:15:7 | +LL | let x = Box::new(3); + | - help: consider changing this to be mutable: `mut x` LL | f(&mut *x); //~ ERROR cannot borrow immutable | ^^^^^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `x` error: aborting due to previous error diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.nll.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.nll.stderr index f58f33c9a9a..01e26980323 100644 --- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.nll.stderr +++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-fn-items.nll.stderr @@ -15,6 +15,8 @@ LL | y.push(z); //~ ERROR lifetime mismatch error[E0596]: cannot borrow immutable item `y` as mutable --> $DIR/ex3-both-anon-regions-using-fn-items.rs:11:3 | +LL | fn foo(x:fn(&u8, &u8), y: Vec<&u8>, z: &u8) { + | - help: consider changing this to be mutable: `mut y` LL | y.push(z); //~ ERROR lifetime mismatch | ^ cannot borrow as mutable diff --git a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.nll.stderr b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.nll.stderr index 4bfb4ac2833..a61d49fc953 100644 --- a/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.nll.stderr +++ b/src/test/ui/lifetime-errors/ex3-both-anon-regions-using-trait-objects.nll.stderr @@ -15,6 +15,8 @@ LL | y.push(z); //~ ERROR lifetime mismatch error[E0596]: cannot borrow immutable item `y` as mutable --> $DIR/ex3-both-anon-regions-using-trait-objects.rs:11:3 | +LL | fn foo(x:Box<Fn(&u8, &u8)> , y: Vec<&u8>, z: &u8) { + | - help: consider changing this to be mutable: `mut y` LL | y.push(z); //~ ERROR lifetime mismatch | ^ cannot borrow as mutable diff --git a/src/test/ui/macros/span-covering-argument-1.nll.stderr b/src/test/ui/macros/span-covering-argument-1.nll.stderr index a12baab4159..213eddee720 100644 --- a/src/test/ui/macros/span-covering-argument-1.nll.stderr +++ b/src/test/ui/macros/span-covering-argument-1.nll.stderr @@ -1,6 +1,8 @@ error[E0596]: cannot borrow immutable item `foo` as mutable --> $DIR/span-covering-argument-1.rs:15:14 | +LL | let $s = 0; + | -- help: consider changing this to be mutable: `mut foo` LL | *&mut $s = 0; | ^^^^^^^ cannot borrow as mutable ... diff --git a/src/test/ui/nll/issue-47388.stderr b/src/test/ui/nll/issue-47388.stderr index f3952c49a2a..96e9f155414 100644 --- a/src/test/ui/nll/issue-47388.stderr +++ b/src/test/ui/nll/issue-47388.stderr @@ -1,4 +1,4 @@ -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `fancy_ref.num` which is behind a `&` reference --> $DIR/issue-47388.rs:18:5 | LL | let fancy_ref = &(&mut fancy); diff --git a/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr b/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr index b97bdeea409..8aa7e8a417c 100644 --- a/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr +++ b/src/test/ui/rfc-2005-default-binding-mode/enum.nll.stderr @@ -1,26 +1,20 @@ -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `*x` which is behind a `&` reference --> $DIR/enum.rs:19:5 | -LL | let Wrap(x) = &Wrap(3); - | - help: consider changing this to be a mutable reference: `&mut` LL | *x += 1; //~ ERROR cannot assign to immutable - | ^^^^^^^ + | ^^^^^^^ cannot assign -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `*x` which is behind a `&` reference --> $DIR/enum.rs:23:9 | -LL | if let Some(x) = &Some(3) { - | - help: consider changing this to be a mutable reference: `&mut` LL | *x += 1; //~ ERROR cannot assign to immutable - | ^^^^^^^ + | ^^^^^^^ cannot assign -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `*x` which is behind a `&` reference --> $DIR/enum.rs:29:9 | -LL | while let Some(x) = &Some(3) { - | - help: consider changing this to be a mutable reference: `&mut` LL | *x += 1; //~ ERROR cannot assign to immutable - | ^^^^^^^ + | ^^^^^^^ cannot assign error: aborting due to 3 previous errors diff --git a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr index 3ee4dc07bb8..4e00dec7616 100644 --- a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr +++ b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.nll.stderr @@ -1,26 +1,20 @@ -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `*n` which is behind a `&` reference --> $DIR/explicit-mut.rs:17:13 | -LL | Some(n) => { - | - help: consider changing this to be a mutable reference: `&mut` LL | *n += 1; //~ ERROR cannot assign to immutable - | ^^^^^^^ + | ^^^^^^^ cannot assign -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `*n` which is behind a `&` reference --> $DIR/explicit-mut.rs:25:13 | -LL | Some(n) => { - | - help: consider changing this to be a mutable reference: `&mut` LL | *n += 1; //~ ERROR cannot assign to immutable - | ^^^^^^^ + | ^^^^^^^ cannot assign -error[E0594]: cannot assign to data in a `&` reference +error[E0594]: cannot assign to `*n` which is behind a `&` reference --> $DIR/explicit-mut.rs:33:13 | -LL | Some(n) => { - | - help: consider changing this to be a mutable reference: `&mut` LL | *n += 1; //~ ERROR cannot assign to immutable - | ^^^^^^^ + | ^^^^^^^ cannot assign error: aborting due to 3 previous errors diff --git a/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr b/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr index 172828b9a40..3282fbba6c5 100644 --- a/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr +++ b/src/test/ui/span/borrowck-borrow-overloaded-auto-deref-mut.nll.stderr @@ -1,50 +1,66 @@ error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:63:24 | +LL | fn deref_mut_field1(x: Own<Point>) { + | - help: consider changing this to be mutable: `mut x` LL | let __isize = &mut x.y; //~ ERROR cannot borrow | ^ cannot borrow as mutable error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:75:10 | +LL | fn deref_extend_mut_field1(x: &Own<Point>) -> &mut isize { + | ----------- help: consider changing this to be a mutable reference: `&mut Own<Point>` LL | &mut x.y //~ ERROR cannot borrow - | ^ cannot borrow as mutable + | ^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:98:5 | +LL | fn assign_field1<'a>(x: Own<Point>) { + | - help: consider changing this to be mutable: `mut x` LL | x.y = 3; //~ ERROR cannot borrow | ^ cannot borrow as mutable error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:102:5 | +LL | fn assign_field2<'a>(x: &'a Own<Point>) { + | -------------- help: consider changing this to be a mutable reference: `&mut Own<Point>` LL | x.y = 3; //~ ERROR cannot borrow - | ^ cannot borrow as mutable + | ^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:119:5 | +LL | fn deref_mut_method1(x: Own<Point>) { + | - help: consider changing this to be mutable: `mut x` LL | x.set(0, 0); //~ ERROR cannot borrow | ^ cannot borrow as mutable error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:131:5 | +LL | fn deref_extend_mut_method1(x: &Own<Point>) -> &mut isize { + | ----------- help: consider changing this to be a mutable reference: `&mut Own<Point>` LL | x.y_mut() //~ ERROR cannot borrow - | ^ cannot borrow as mutable + | ^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:139:6 | +LL | fn assign_method1<'a>(x: Own<Point>) { + | - help: consider changing this to be mutable: `mut x` LL | *x.y_mut() = 3; //~ ERROR cannot borrow | ^ cannot borrow as mutable error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-borrow-overloaded-auto-deref-mut.rs:143:6 | +LL | fn assign_method2<'a>(x: &'a Own<Point>) { + | -------------- help: consider changing this to be a mutable reference: `&mut Own<Point>` LL | *x.y_mut() = 3; //~ ERROR cannot borrow - | ^ cannot borrow as mutable + | ^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to 8 previous errors diff --git a/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.nll.stderr b/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.nll.stderr index 24abe85de76..0b1bfd8cee6 100644 --- a/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.nll.stderr +++ b/src/test/ui/span/borrowck-borrow-overloaded-deref-mut.nll.stderr @@ -1,26 +1,34 @@ error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/borrowck-borrow-overloaded-deref-mut.rs:39:25 | +LL | fn deref_mut1(x: Own<isize>) { + | - help: consider changing this to be mutable: `mut x` LL | let __isize = &mut *x; //~ ERROR cannot borrow | ^ cannot borrow as mutable error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-borrow-overloaded-deref-mut.rs:51:11 | +LL | fn deref_extend_mut1<'a>(x: &'a Own<isize>) -> &'a mut isize { + | -------------- help: consider changing this to be a mutable reference: `&mut Own<isize>` LL | &mut **x //~ ERROR cannot borrow - | ^^ cannot borrow as mutable + | ^^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `x` as mutable --> $DIR/borrowck-borrow-overloaded-deref-mut.rs:59:6 | +LL | fn assign1<'a>(x: Own<isize>) { + | - help: consider changing this to be mutable: `mut x` LL | *x = 3; //~ ERROR cannot borrow | ^ cannot borrow as mutable error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-borrow-overloaded-deref-mut.rs:63:6 | +LL | fn assign2<'a>(x: &'a Own<isize>) { + | -------------- help: consider changing this to be a mutable reference: `&mut Own<isize>` LL | **x = 3; //~ ERROR cannot borrow - | ^^ cannot borrow as mutable + | ^^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to 4 previous errors diff --git a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr index 26e9ea4dc0b..c4bdef21de4 100644 --- a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr +++ b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr @@ -15,16 +15,18 @@ LL | | })); error[E0596]: cannot borrow immutable item `*f` as mutable --> $DIR/borrowck-call-is-borrow-issue-12224.rs:35:5 | +LL | fn test2<F>(f: &F) where F: FnMut() { + | -- help: consider changing this to be a mutable reference: `&mut F` LL | (*f)(); - | ^^^^ cannot borrow as mutable + | ^^^^ `f` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `*f.f` as mutable --> $DIR/borrowck-call-is-borrow-issue-12224.rs:44:5 | +LL | fn test4(f: &Test) { + | ----- help: consider changing this to be a mutable reference: `&mut Test<'_>` LL | f.f.call_mut(()) - | ^^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*f` + | ^^^ `f` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0507]: cannot move out of borrowed content --> $DIR/borrowck-call-is-borrow-issue-12224.rs:66:13 diff --git a/src/test/ui/span/borrowck-call-method-from-mut-aliasable.nll.stderr b/src/test/ui/span/borrowck-call-method-from-mut-aliasable.nll.stderr index 43934bf4aee..0bc614589e3 100644 --- a/src/test/ui/span/borrowck-call-method-from-mut-aliasable.nll.stderr +++ b/src/test/ui/span/borrowck-call-method-from-mut-aliasable.nll.stderr @@ -1,8 +1,11 @@ error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-call-method-from-mut-aliasable.rs:27:5 | +LL | fn b(x: &Foo) { + | ---- help: consider changing this to be a mutable reference: `&mut Foo` +LL | x.f(); LL | x.h(); //~ ERROR cannot borrow - | ^ cannot borrow as mutable + | ^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to previous error diff --git a/src/test/ui/span/borrowck-fn-in-const-b.nll.stderr b/src/test/ui/span/borrowck-fn-in-const-b.nll.stderr index d3c6fd66599..1cb2c92833c 100644 --- a/src/test/ui/span/borrowck-fn-in-const-b.nll.stderr +++ b/src/test/ui/span/borrowck-fn-in-const-b.nll.stderr @@ -1,8 +1,10 @@ error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-fn-in-const-b.rs:17:9 | +LL | fn broken(x: &Vec<String>) { + | ------------ help: consider changing this to be a mutable reference: `&mut std::vec::Vec<std::string::String>` LL | x.push(format!("this is broken")); - | ^ cannot borrow as mutable + | ^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to previous error diff --git a/src/test/ui/span/borrowck-object-mutability.nll.stderr b/src/test/ui/span/borrowck-object-mutability.nll.stderr index 9b5e084bd37..cf615eed556 100644 --- a/src/test/ui/span/borrowck-object-mutability.nll.stderr +++ b/src/test/ui/span/borrowck-object-mutability.nll.stderr @@ -1,16 +1,20 @@ error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-object-mutability.rs:19:5 | +LL | fn borrowed_receiver(x: &Foo) { + | ---- help: consider changing this to be a mutable reference: `&mut Foo` +LL | x.borrowed(); LL | x.borrowed_mut(); //~ ERROR cannot borrow - | ^ cannot borrow as mutable + | ^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `*x` as mutable --> $DIR/borrowck-object-mutability.rs:29:5 | +LL | fn owned_receiver(x: Box<Foo>) { + | - help: consider changing this to be mutable: `mut x` +LL | x.borrowed(); LL | x.borrowed_mut(); //~ ERROR cannot borrow | ^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `x` error: aborting due to 2 previous errors diff --git a/src/test/ui/span/mut-arg-hint.nll.stderr b/src/test/ui/span/mut-arg-hint.nll.stderr index 8e1cb9720e2..cd19059fdae 100644 --- a/src/test/ui/span/mut-arg-hint.nll.stderr +++ b/src/test/ui/span/mut-arg-hint.nll.stderr @@ -1,20 +1,26 @@ error[E0596]: cannot borrow immutable item `*a` as mutable --> $DIR/mut-arg-hint.rs:13:9 | +LL | fn foo(mut a: &String) { + | ------- help: consider changing this to be a mutable reference: `&mut std::string::String` LL | a.push_str("bar"); //~ ERROR cannot borrow immutable borrowed content - | ^ cannot borrow as mutable + | ^ `a` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `*a` as mutable --> $DIR/mut-arg-hint.rs:18:5 | +LL | pub fn foo<'a>(mut a: &'a String) { + | ---------- help: consider changing this to be a mutable reference: `&mut std::string::String` LL | a.push_str("foo"); //~ ERROR cannot borrow immutable borrowed content - | ^ cannot borrow as mutable + | ^ `a` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `*a` as mutable --> $DIR/mut-arg-hint.rs:25:9 | +LL | pub fn foo(mut a: &String) { + | ------- help: consider changing this to be a mutable reference: `&mut std::string::String` LL | a.push_str("foo"); //~ ERROR cannot borrow immutable borrowed content - | ^ cannot borrow as mutable + | ^ `a` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to 3 previous errors diff --git a/src/test/ui/suggestions/closure-immutable-outer-variable.nll.stderr b/src/test/ui/suggestions/closure-immutable-outer-variable.nll.stderr index bc655114c2b..335ccefe8a0 100644 --- a/src/test/ui/suggestions/closure-immutable-outer-variable.nll.stderr +++ b/src/test/ui/suggestions/closure-immutable-outer-variable.nll.stderr @@ -2,7 +2,7 @@ error[E0594]: cannot assign to immutable item `y` --> $DIR/closure-immutable-outer-variable.rs:21:26 | LL | foo(Box::new(move || y = false) as Box<_>); //~ ERROR cannot assign to captured outer variable - | ^^^^^^^^^ cannot mutate + | ^^^^^^^^^ cannot assign error: aborting due to previous error diff --git a/src/test/ui/suggestions/fn-closure-mutable-capture.nll.stderr b/src/test/ui/suggestions/fn-closure-mutable-capture.nll.stderr index ed691843f9b..7ef21d3720d 100644 --- a/src/test/ui/suggestions/fn-closure-mutable-capture.nll.stderr +++ b/src/test/ui/suggestions/fn-closure-mutable-capture.nll.stderr @@ -1,8 +1,8 @@ -error[E0594]: cannot assign to immutable item `x` +error[E0594]: cannot assign to `x` which is behind a `&` reference --> $DIR/fn-closure-mutable-capture.rs:15:17 | LL | bar(move || x = 1); - | ^^^^^ cannot mutate + | ^^^^^ cannot assign error: aborting due to previous error diff --git a/src/test/ui/trivial-bounds-inconsistent-copy-reborrow.nll.stderr b/src/test/ui/trivial-bounds-inconsistent-copy-reborrow.nll.stderr index 66547863db2..1a36b0c4839 100644 --- a/src/test/ui/trivial-bounds-inconsistent-copy-reborrow.nll.stderr +++ b/src/test/ui/trivial-bounds-inconsistent-copy-reborrow.nll.stderr @@ -1,18 +1,18 @@ error[E0596]: cannot borrow immutable item `**t` as mutable --> $DIR/trivial-bounds-inconsistent-copy-reborrow.rs:16:5 | +LL | fn reborrow_mut<'a>(t: &'a &'a mut i32) -> &'a mut i32 where &'a mut i32: Copy { + | --------------- help: consider changing this to be a mutable reference: `&mut &mut i32` LL | *t //~ ERROR - | ^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*t` + | ^^ `t` is a `&` reference, so the data it refers to cannot be borrowed as mutable error[E0596]: cannot borrow immutable item `**t` as mutable --> $DIR/trivial-bounds-inconsistent-copy-reborrow.rs:20:6 | +LL | fn copy_reborrow_mut<'a>(t: &'a &'a mut i32) -> &'a mut i32 where &'a mut i32: Copy { + | --------------- help: consider changing this to be a mutable reference: `&mut &mut i32` LL | {*t} //~ ERROR - | ^^ cannot borrow as mutable - | - = note: the value which is causing this path not to be mutable is...: `*t` + | ^^ `t` is a `&` reference, so the data it refers to cannot be borrowed as mutable error: aborting due to 2 previous errors |
