| error[E0382]: use of partially moved value: `s` |
| --> $DIR/move-in-pattern-mut.rs:18:9 |
| | |
| LL | if let Some(mut x) = s { |
| | ----- value partially moved here |
| ... |
| LL | foo(s); |
| | ^ value used here after partial move |
| | |
| = note: partial move occurs because value has type `S`, which does not implement the `Copy` trait |
| help: borrow this binding in the pattern to avoid moving the value |
| | |
| LL | if let Some(ref mut x) = s { |
| | +++ |
| |
| error[E0382]: use of partially moved value: `e` |
| --> $DIR/move-in-pattern-mut.rs:22:9 |
| | |
| LL | let E::V { s: mut x } = e; |
| | ----- value partially moved here |
| LL | x = S; |
| LL | bar(e); |
| | ^ value used here after partial move |
| | |
| = note: partial move occurs because value has type `S`, which does not implement the `Copy` trait |
| help: borrow this binding in the pattern to avoid moving the value |
| | |
| LL | let E::V { s: ref mut x } = e; |
| | +++ |
| |
| error: aborting due to 2 previous errors |
| |
| For more information about this error, try `rustc --explain E0382`. |