mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-16 13:05:18 +03:00
Clean up E0067 long explanation
This commit is contained in:
@@ -1,33 +1,15 @@
|
||||
The left-hand side of a compound assignment expression must be a place
|
||||
expression. A place expression represents a memory location and includes
|
||||
item paths (ie, namespaced variables), dereferences, indexing expressions,
|
||||
and field references.
|
||||
An invalid left-hand side expression was used on an assignment operation.
|
||||
|
||||
Let's start with some erroneous code examples:
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0067
|
||||
use std::collections::LinkedList;
|
||||
|
||||
// Bad: assignment to non-place expression
|
||||
LinkedList::new() += 1;
|
||||
|
||||
// ...
|
||||
|
||||
fn some_func(i: &mut i32) {
|
||||
i += 12; // Error : '+=' operation cannot be applied on a reference !
|
||||
}
|
||||
12 += 1; // error!
|
||||
```
|
||||
|
||||
And now some working examples:
|
||||
You need to have a place expression to be able to assign it something. For
|
||||
example:
|
||||
|
||||
```
|
||||
let mut i : i32 = 0;
|
||||
|
||||
i += 12; // Good !
|
||||
|
||||
// ...
|
||||
|
||||
fn some_func(i: &mut i32) {
|
||||
*i += 12; // Good !
|
||||
}
|
||||
let mut x: i8 = 12;
|
||||
x += 1; // ok!
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user