error[E0505]: cannot move out of `a` because it is borrowed
  --> $DIR/variance-issue-20533.rs:28:14
   |
LL |         let a = AffineU32(1);
   |             - binding `a` declared here
LL |         let x = foo(&a);
   |                     -- borrow of `a` occurs here
LL |         drop(a);
   |              ^ move out of `a` occurs here
LL |         drop(x);
   |              - borrow later used here

error[E0505]: cannot move out of `a` because it is borrowed
  --> $DIR/variance-issue-20533.rs:34:14
   |
LL |         let a = AffineU32(1);
   |             - binding `a` declared here
LL |         let x = bar(&a);
   |                     -- borrow of `a` occurs here
LL |         drop(a);
   |              ^ move out of `a` occurs here
LL |         drop(x);
   |              - borrow later used here

error[E0505]: cannot move out of `a` because it is borrowed
  --> $DIR/variance-issue-20533.rs:40:14
   |
LL |         let a = AffineU32(1);
   |             - binding `a` declared here
LL |         let x = baz(&a);
   |                     -- borrow of `a` occurs here
LL |         drop(a);
   |              ^ move out of `a` occurs here
LL |         drop(x);
   |              - borrow later used here

error: aborting due to 3 previous errors

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