// EMIT_MIR_FOR_EACH_PANIC_STRATEGY //! Tests that assignment in both branches of an `if` are eliminated. //@ test-mir-pass: DestinationPropagation fn val() -> i32 { 1 } fn cond() -> bool { true } // EMIT_MIR branch.foo.DestinationPropagation.diff fn foo() -> i32 { // CHECK-LABEL: fn foo( // CHECK: debug y => [[y:_.*]]; // CHECK: [[y]] = val() // CHECK-NOT: [[y]] = {{_.*}}; let x = val(); let y = if cond() { x } else { val(); x }; y } fn main() { foo(); }