rust/tests/ui/liveness/liveness-assign/liveness-assign-imm-local-with-drop.rs
Giacomo Pasini b3a47d9b6b
Desugars drop and replace at MIR build
This commit desugars the drop and replace deriving from an
assignment at MIR build, avoiding the construction of the
DropAndReplace terminator (which will be removed in a followign PR)

In order to retain the same error messages for replaces a new
DesugaringKind::Replace variant is introduced.
2023-03-03 16:33:11 +01:00

14 lines
449 B
Rust

fn test() {
let b = Box::new(1); //~ NOTE first assignment
//~| HELP consider making this binding mutable
//~| SUGGESTION mut b
drop(b);
b = Box::new(2); //~ ERROR cannot assign twice to immutable variable `b`
//~| NOTE cannot assign twice to immutable
//~| NOTE in this expansion of desugaring of drop and replace
drop(b);
}
fn main() {
}