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`.
