//# publish module 0x1.M { t0(cond: bool) { let x: u64; let x_ref: &mut u64; label b0: x = 0; x_ref = &mut x; jump_if_false (move(cond)) b2; label b1: *move(x_ref) = 1; label b2: // safe to assign, as x is no longer borrowed // even though the reference was only moved in one branch x = 1; return; } t1(cond: bool) { let x: u64; let x_ref: &mut u64; label b0: x = 0; x_ref = &mut x; jump_if (move(cond)) b2; label b1: jump b3; label b2: *move(x_ref) = 1; jump b3; label b3: // safe to assign, as x is no longer borrowed // even though the reference was only moved in one branch x = 1; return; } }