fn separate_arms() { | |
// Here both arms perform assignments, but only one is illegal. | |
let mut x = None; | |
match x { | |
None => { | |
// It is ok to reassign x here, because there is in | |
// fact no outstanding loan of x! | |
x = Some(0); | |
} | |
Some(ref r) => { | |
x = Some(1); //~ ERROR cannot assign to `x` because it is borrowed | |
drop(r); | |
} | |
} | |
} | |
fn main() {} |