error[E0505]: cannot move out of `y` because it is borrowed
  --> $DIR/send-is-not-static-std-sync.rs:13:10
   |
LL |     let y = Box::new(1);
   |         - binding `y` declared here
LL |     let lock = Mutex::new(&x);
LL |     *lock.lock().unwrap() = &*y;
   |                             --- borrow of `*y` occurs here
LL |     drop(y);
   |          ^ move out of `y` occurs here
...
LL |         *lock.lock().unwrap() = &z;
   |          ---- borrow later used here
   |
help: consider cloning the value if the performance cost is acceptable
   |
LL -     *lock.lock().unwrap() = &*y;
LL +     *lock.lock().unwrap() = &y.clone();
   |

error[E0597]: `z` does not live long enough
  --> $DIR/send-is-not-static-std-sync.rs:16:33
   |
LL |         let z = 2;
   |             - binding `z` declared here
LL |         *lock.lock().unwrap() = &z;
   |                                 ^^ borrowed value does not live long enough
LL |     }
   |     - `z` dropped here while still borrowed
LL |
LL |     lock.use_ref(); // (Mutex is #[may_dangle] so its dtor does not use `z` => needs explicit use)
   |     ---- borrow later used here

error[E0505]: cannot move out of `y` because it is borrowed
  --> $DIR/send-is-not-static-std-sync.rs:27:10
   |
LL |     let y = Box::new(1);
   |         - binding `y` declared here
LL |     let lock = RwLock::new(&x);
LL |     *lock.write().unwrap() = &*y;
   |                              --- borrow of `*y` occurs here
LL |     drop(y);
   |          ^ move out of `y` occurs here
...
LL |         *lock.write().unwrap() = &z;
   |          ---- borrow later used here
   |
help: consider cloning the value if the performance cost is acceptable
   |
LL -     *lock.write().unwrap() = &*y;
LL +     *lock.write().unwrap() = &y.clone();
   |

error[E0597]: `z` does not live long enough
  --> $DIR/send-is-not-static-std-sync.rs:30:34
   |
LL |         let z = 2;
   |             - binding `z` declared here
LL |         *lock.write().unwrap() = &z;
   |                                  ^^ borrowed value does not live long enough
LL |     }
   |     - `z` dropped here while still borrowed
LL |
LL |     lock.use_ref(); // (RwLock is #[may_dangle] so its dtor does not use `z` => needs explicit use)
   |     ---- borrow later used here

error[E0505]: cannot move out of `y` because it is borrowed
  --> $DIR/send-is-not-static-std-sync.rs:43:10
   |
LL |     let y = Box::new(1);
   |         - binding `y` declared here
...
LL |     tx.send(&*y);
   |             --- borrow of `*y` occurs here
LL |     drop(y);
   |          ^ move out of `y` occurs here
...
LL |         tx.send(&z).unwrap();
   |         -- borrow later used here
   |
help: consider cloning the value if the performance cost is acceptable
   |
LL -     tx.send(&*y);
LL +     tx.send(&y.clone());
   |

error[E0597]: `z` does not live long enough
  --> $DIR/send-is-not-static-std-sync.rs:46:17
   |
LL |         let z = 2;
   |             - binding `z` declared here
LL |         tx.send(&z).unwrap();
   |                 ^^ borrowed value does not live long enough
LL |     }
   |     - `z` dropped here while still borrowed
LL |
LL |     tx.use_ref(); // (channel drop glue does not use `z` => needs explicit use)
   |     -- borrow later used here

error: aborting due to 6 previous errors

Some errors have detailed explanations: E0505, E0597.
For more information about an error, try `rustc --explain E0505`.
