b3a47d9b6b
This commit desugars the drop and replace deriving from an assignment at MIR build, avoiding the construction of the DropAndReplace terminator (which will be removed in a followign PR) In order to retain the same error messages for replaces a new DesugaringKind::Replace variant is introduced.
18 lines
667 B
Plaintext
18 lines
667 B
Plaintext
error[E0506]: cannot assign to `greeting` because it is borrowed
|
|
--> $DIR/issue-58776-borrowck-scans-children.rs:5:5
|
|
|
|
|
LL | let res = (|| (|| &greeting)())();
|
|
| -- -------- borrow occurs due to use in closure
|
|
| |
|
|
| `greeting` is borrowed here
|
|
LL |
|
|
LL | greeting = "DEALLOCATED".to_string();
|
|
| ^^^^^^^^ `greeting` is assigned to here but it was already borrowed
|
|
...
|
|
LL | println!("thread result: {:?}", res);
|
|
| --- borrow later used here
|
|
|
|
error: aborting due to previous error
|
|
|
|
For more information about this error, try `rustc --explain E0506`.
|