error[E0382]: use of moved value: `foo`
  --> $DIR/issue-17385.rs:19:11
   |
LL |     let foo = X(1);
   |         --- move occurs because `foo` has type `X`, which does not implement the `Copy` trait
LL |     drop(foo);
   |          --- value moved here
LL |     match foo {
LL |         X(1) => (),
   |           ^ value used here after move

error[E0382]: use of moved value: `e`
  --> $DIR/issue-17385.rs:25:11
   |
LL |     let e = Enum::Variant2;
   |         - move occurs because `e` has type `Enum`, which does not implement the `Copy` trait
LL |     drop(e);
   |          - value moved here
LL |     match e {
   |           ^ value used here after move

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0382`.
