| fn main() { | |
| let mut x: Option<isize> = None; | |
| match x { | |
| None => { | |
| // Note: on this branch, no borrow has occurred. | |
| x = Some(0); | |
| } | |
| Some(ref i) => { | |
| // But on this branch, `i` is an outstanding borrow | |
| x = Some(*i+1); //~ ERROR cannot assign to `x` because it is borrowed | |
| drop(i); | |
| } | |
| } | |
| x.clone(); // just to prevent liveness warnings | |
| } |