warning: denote infinite loops with `loop { ... }` --> $DIR/liveness-move-in-while.rs:8:9 | LL | while true { while true { while true { x = y; x.clone(); } } } | ^^^^^^^^^^ help: use `loop` | = note: `#[warn(while_true)]` on by default warning: denote infinite loops with `loop { ... }` --> $DIR/liveness-move-in-while.rs:8:22 | LL | while true { while true { while true { x = y; x.clone(); } } } | ^^^^^^^^^^ help: use `loop` warning: denote infinite loops with `loop { ... }` --> $DIR/liveness-move-in-while.rs:8:35 | LL | while true { while true { while true { x = y; x.clone(); } } } | ^^^^^^^^^^ help: use `loop` error[E0382]: borrow of moved value: `y` --> $DIR/liveness-move-in-while.rs:7:24 | LL | let y: Box = 42.into(); | - move occurs because `y` has type `Box`, which does not implement the `Copy` trait ... LL | println!("{}", y); | ^ value borrowed here after move LL | while true { while true { while true { x = y; x.clone(); } } } | - value moved here, in previous iteration of loop | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) error: aborting due to previous error; 3 warnings emitted For more information about this error, try `rustc --explain E0382`.