error[E0507]: cannot move out of borrowed content --> $DIR/borrowck-move-error-with-note.rs:21:11 | LL | match *f { //~ ERROR cannot move out of | ^^ cannot move out of borrowed content LL | //~| cannot move out LL | Foo::Foo1(num1, | ---- hint: to prevent move, use `ref num1` or `ref mut num1` LL | num2) => (), | ---- ...and here (use `ref num2` or `ref mut num2`) LL | Foo::Foo2(num) => (), | --- ...and here (use `ref num` or `ref mut num`) error[E0509]: cannot move out of type `S`, which implements the `Drop` trait --> $DIR/borrowck-move-error-with-note.rs:40:9 | LL | / S { //~ ERROR cannot move out of type `S`, which implements the `Drop` trait LL | | //~| cannot move out of here LL | | f: _s, | | -- hint: to prevent move, use `ref _s` or `ref mut _s` LL | | g: _t | | -- ...and here (use `ref _t` or `ref mut _t`) LL | | } => {} | |_________^ cannot move out of here error[E0507]: cannot move out of borrowed content --> $DIR/borrowck-move-error-with-note.rs:57:11 | LL | match a.a { //~ ERROR cannot move out of | ^ cannot move out of borrowed content LL | //~| cannot move out LL | n => { | - hint: to prevent move, use `ref n` or `ref mut n` error: aborting due to 3 previous errors You've got a few errors: E0507, E0509 If you want more information on an error, try using "rustc --explain E0507"