| error[E0507]: cannot move out of `var`, a captured variable in an `FnMut` closure |
| --> $DIR/option-content-move3.rs:13:21 |
| | |
| LL | let var = NotCopyable; |
| | --- captured outer variable |
| ... |
| LL | move || { |
| | ------- captured by this `FnMut` closure |
| LL | let x = var; |
| | ^^^ move occurs because `var` has type `NotCopyable`, which does not implement the `Copy` trait |
| | |
| note: if `NotCopyable` implemented `Clone`, you could clone the value |
| --> $DIR/option-content-move3.rs:2:1 |
| | |
| LL | struct NotCopyable; |
| | ^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type |
| ... |
| LL | let x = var; |
| | --- you could clone this value |
| help: consider borrowing here |
| | |
| LL | let x = &var; |
| | + |
| |
| error[E0507]: cannot move out of `var`, a captured variable in an `FnMut` closure |
| --> $DIR/option-content-move3.rs:12:9 |
| | |
| LL | let var = NotCopyable; |
| | --- captured outer variable |
| LL | func(|| { |
| | -- captured by this `FnMut` closure |
| LL | // Shouldn't suggest `move ||.as_ref()` here |
| LL | move || { |
| | ^^^^^^^ `var` is moved here |
| LL | let x = var; |
| | --- |
| | | |
| | variable moved due to use in closure |
| | move occurs because `var` has type `NotCopyable`, which does not implement the `Copy` trait |
| | |
| note: if `NotCopyable` implemented `Clone`, you could clone the value |
| --> $DIR/option-content-move3.rs:2:1 |
| | |
| LL | struct NotCopyable; |
| | ^^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type |
| ... |
| LL | let x = var; |
| | --- you could clone this value |
| |
| error[E0507]: cannot move out of `var`, a captured variable in an `FnMut` closure |
| --> $DIR/option-content-move3.rs:24:21 |
| | |
| LL | let var = NotCopyableButCloneable; |
| | --- captured outer variable |
| ... |
| LL | move || { |
| | ------- captured by this `FnMut` closure |
| LL | let x = var; |
| | ^^^ move occurs because `var` has type `NotCopyableButCloneable`, which does not implement the `Copy` trait |
| | |
| help: consider borrowing here |
| | |
| LL | let x = &var; |
| | + |
| |
| error[E0507]: cannot move out of `var`, a captured variable in an `FnMut` closure |
| --> $DIR/option-content-move3.rs:23:9 |
| | |
| LL | let var = NotCopyableButCloneable; |
| | --- captured outer variable |
| LL | func(|| { |
| | -- captured by this `FnMut` closure |
| LL | // Shouldn't suggest `move ||.as_ref()` here |
| LL | move || { |
| | ^^^^^^^ `var` is moved here |
| LL | let x = var; |
| | --- |
| | | |
| | variable moved due to use in closure |
| | move occurs because `var` has type `NotCopyableButCloneable`, which does not implement the `Copy` trait |
| | |
| help: clone the value before moving it into the closure |
| | |
| LL ~ { |
| LL + let value = var.clone(); |
| LL ~ move || { |
| LL ~ let x = value; |
| LL | println!("{x:?}"); |
| LL ~ } |
| LL + } |
| | |
| |
| error: aborting due to 4 previous errors |
| |
| For more information about this error, try `rustc --explain E0507`. |