struct S { v: i32 } fn f(v: i32) -> i32 { (v + 1) / 2 } fn main() { let cell = std::cell::RefCell::new(S{v:666}); let c1 = std::cell::RefCell::new(S{v:0}); let a = f(-1); let r1 = cell.borrow(); let mut r2 = c1.borrow_mut(); let r3; if a == 0 { r3 = cell.borrow(); } else { r2 = cell.borrow_mut(); } println!("{} {}", r1.v, r2.v) }