diff options
| author | Michael Goulet <michael@errs.io> | 2022-03-04 21:59:13 -0800 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-05-17 20:21:54 -0700 |
| commit | a5c4f4cc4b14b2dff2506d08defb1b97adcbf333 (patch) | |
| tree | c04d82a4d30d2856726dc5078528963892583260 /src | |
| parent | 4c5f6e6277b89e47d73a192078697f7a5f3dc0ac (diff) | |
| download | rust-a5c4f4cc4b14b2dff2506d08defb1b97adcbf333.tar.gz rust-a5c4f4cc4b14b2dff2506d08defb1b97adcbf333.zip | |
Suggest deref non-lvalue mutable reference
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/typeck/assign-non-lval-mut-ref.fixed | 7 | ||||
| -rw-r--r-- | src/test/ui/typeck/assign-non-lval-mut-ref.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/typeck/assign-non-lval-mut-ref.stderr | 16 | ||||
| -rw-r--r-- | src/test/ui/typeck/issue-93486.stderr | 5 |
4 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/typeck/assign-non-lval-mut-ref.fixed b/src/test/ui/typeck/assign-non-lval-mut-ref.fixed new file mode 100644 index 00000000000..76e2afc672a --- /dev/null +++ b/src/test/ui/typeck/assign-non-lval-mut-ref.fixed @@ -0,0 +1,7 @@ +// run-rustfix + +fn main() { + let mut x = vec![1usize]; + *x.last_mut().unwrap() = 2usize; + //~^ ERROR invalid left-hand side of assignment +} diff --git a/src/test/ui/typeck/assign-non-lval-mut-ref.rs b/src/test/ui/typeck/assign-non-lval-mut-ref.rs new file mode 100644 index 00000000000..ff91f2297c8 --- /dev/null +++ b/src/test/ui/typeck/assign-non-lval-mut-ref.rs @@ -0,0 +1,7 @@ +// run-rustfix + +fn main() { + let mut x = vec![1usize]; + x.last_mut().unwrap() = 2usize; + //~^ ERROR invalid left-hand side of assignment +} diff --git a/src/test/ui/typeck/assign-non-lval-mut-ref.stderr b/src/test/ui/typeck/assign-non-lval-mut-ref.stderr new file mode 100644 index 00000000000..745ada5de0b --- /dev/null +++ b/src/test/ui/typeck/assign-non-lval-mut-ref.stderr @@ -0,0 +1,16 @@ +error[E0070]: invalid left-hand side of assignment + --> $DIR/assign-non-lval-mut-ref.rs:5:27 + | +LL | x.last_mut().unwrap() = 2usize; + | --------------------- ^ + | | + | cannot assign to this expression + | +help: consider dereferencing here to assign to the mutable borrowed piece of memory + | +LL | *x.last_mut().unwrap() = 2usize; + | + + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0070`. diff --git a/src/test/ui/typeck/issue-93486.stderr b/src/test/ui/typeck/issue-93486.stderr index 70b5b63f1cb..95eb021965f 100644 --- a/src/test/ui/typeck/issue-93486.stderr +++ b/src/test/ui/typeck/issue-93486.stderr @@ -5,6 +5,11 @@ LL | vec![].last_mut().unwrap() = 3_u8; | -------------------------- ^ | | | cannot assign to this expression + | +help: consider dereferencing here to assign to the mutable borrowed piece of memory + | +LL | *vec![].last_mut().unwrap() = 3_u8; + | + error: aborting due to previous error |
