Skip to content
Permalink
Browse files

Clean up E0067 long explanation

  • Loading branch information
GuillaumeGomez committed Nov 25, 2019
1 parent 7e813c4 commit 98e29176264635da8a8c0b2f2ccabf282cfa2282
Showing with 7 additions and 25 deletions.
  1. +7 −25 src/librustc_error_codes/error_codes/E0067.md
@@ -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!
```

0 comments on commit 98e2917

Please sign in to comment.
You can’t perform that action at this time.