| error[E0505]: cannot move out of `alloc` because it is borrowed |
| --> $DIR/leak-alloc.rs:26:10 |
| | |
| LL | let alloc = Alloc {}; |
| | ----- binding `alloc` declared here |
| LL | let boxed = Box::new_in(10, alloc.by_ref()); |
| | ----- borrow of `alloc` occurs here |
| LL | let theref = Box::leak(boxed); |
| LL | drop(alloc); |
| | ^^^^^ move out of `alloc` occurs here |
| LL | |
| LL | use_value(*theref) |
| | ------- borrow later used here |
| | |
| note: if `Alloc` implemented `Clone`, you could clone the value |
| --> $DIR/leak-alloc.rs:8:1 |
| | |
| LL | struct Alloc {} |
| | ^^^^^^^^^^^^ consider implementing `Clone` for this type |
| ... |
| LL | let boxed = Box::new_in(10, alloc.by_ref()); |
| | ----- you could clone this value |
| |
| error: aborting due to 1 previous error |
| |
| For more information about this error, try `rustc --explain E0505`. |