summary refs log tree commit diff
path: root/src/test/ui/borrowck/borrowck-vec-pattern-move-tail.rs
blob: e14ecd90d56fb52e66ac31869739c026925704e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// http://rust-lang.org/COPYRIGHT.
//

// revisions: ast cmp
//[cmp]compile-flags: -Z borrowck=compare

#![feature(slice_patterns)]

fn main() {
    let mut a = [1, 2, 3, 4];
    let t = match a {
        [1, 2, ref tail..] => tail,
        _ => unreachable!()
    };
    println!("t[0]: {}", t[0]);
    a[2] = 0; //[ast]~ ERROR cannot assign to `a[..]` because it is borrowed
              //[cmp]~^ ERROR cannot assign to `a[..]` because it is borrowed (Ast)
              //[cmp]~| ERROR cannot assign to `a[_]` because it is borrowed (Mir)
    println!("t[0]: {}", t[0]);
    t[0];
}