```
error[E0507]: cannot move out of `val`, a captured variable in an `FnMut` closure
--> $DIR/issue-87456-point-to-closure.rs:10:28
|
LL | let val = String::new();
| --- captured outer variable
LL |
LL | take_mut(|| {
| -- captured by this `FnMut` closure
LL |
LL | let _foo: String = val;
| ^^^ move occurs because `val` has type `String`, which does not implement the `Copy` trait
|
help: consider borrowing here
|
LL | let _foo: String = &val;
| +
help: consider cloning the value if the performance cost is acceptable
|
LL | let _foo: String = val.clone();
| ++++++++
```
13 lines
198 B
Rust
13 lines
198 B
Rust
//@ run-rustfix
|
|
fn main() {
|
|
|
|
let x: Option<Box<_>> = Some(Box::new(1));
|
|
|
|
match x {
|
|
Some(ref y) => {
|
|
let _b = y.clone(); //~ ERROR cannot move out
|
|
}
|
|
_ => {}
|
|
}
|
|
}
|