| fn a() { |
| let mut vec = ~[~1, ~2, ~3]; |
| match vec { |
| [~ref _a] => { |
| vec[0] = ~4; //~ ERROR cannot assign to `(*vec)[]` because it is borrowed |
| } |
| _ => fail!("foo") |
| } |
| } |
| |
| fn b() { |
| let mut vec = ~[~1, ~2, ~3]; |
| match vec { |
| [.._b] => { |
| vec[0] = ~4; //~ ERROR cannot assign to `(*vec)[]` because it is borrowed |
| } |
| } |
| } |
| |
| fn c() { |
| let mut vec = ~[~1, ~2, ~3]; |
| match vec { |
| [_a, .._b] => { |
| //~^ ERROR cannot move out |
| |
| // Note: `_a` is *moved* here, but `b` is borrowing, |
| // hence illegal. |
| // |
| // See comment in middle/borrowck/gather_loans/mod.rs |
| // in the case covering these sorts of vectors. |
| } |
| _ => {} |
| } |
| let a = vec[0]; //~ ERROR use of partially moved value: `vec` |
| } |
| |
| fn d() { |
| let mut vec = ~[~1, ~2, ~3]; |
| match vec { |
| [.._a, _b] => { |
| //~^ ERROR cannot move out |
| } |
| _ => {} |
| } |
| let a = vec[0]; //~ ERROR use of partially moved value: `vec` |
| } |
| |
| fn e() { |
| let mut vec = ~[~1, ~2, ~3]; |
| match vec { |
| [_a, _b, _c] => {} |
| _ => {} |
| } |
| let a = vec[0]; //~ ERROR use of partially moved value: `vec` |
| } |
| |
| fn main() {} |