| error[E0507]: cannot move out of a shared reference |
| --> $DIR/by-move-pattern-binding.rs:14:11 |
| | |
| LL | match &s.x { |
| | ^^^^ |
| LL | &E::Foo => {} |
| LL | &E::Bar(identifier) => f(identifier.clone()) |
| | ---------- |
| | | |
| | data moved here |
| | move occurs because `identifier` has type `String`, which does not implement the `Copy` trait |
| | |
| help: consider removing the borrow |
| | |
| LL - &E::Bar(identifier) => f(identifier.clone()) |
| LL + E::Bar(identifier) => f(identifier.clone()) |
| | |
| |
| error[E0507]: cannot move out of a shared reference |
| --> $DIR/by-move-pattern-binding.rs:22:34 |
| | |
| LL | if let &E::Bar(identifier) = &s.x { |
| | ---------- ^^^^ |
| | | |
| | data moved here |
| | move occurs because `identifier` has type `String`, which does not implement the `Copy` trait |
| | |
| help: consider removing the borrow |
| | |
| LL - if let &E::Bar(identifier) = &s.x { |
| LL + if let E::Bar(identifier) = &s.x { |
| | |
| |
| error[E0507]: cannot move out of a shared reference |
| --> $DIR/by-move-pattern-binding.rs:25:31 |
| | |
| LL | let &E::Bar(identifier) = &s.x else { |
| | ---------- ^^^^ |
| | | |
| | data moved here |
| | move occurs because `identifier` has type `String`, which does not implement the `Copy` trait |
| | |
| help: consider removing the borrow |
| | |
| LL - let &E::Bar(identifier) = &s.x else { |
| LL + let E::Bar(identifier) = &s.x else { |
| | |
| |
| error: aborting due to 3 previous errors |
| |
| For more information about this error, try `rustc --explain E0507`. |