// run-pass
#![feature(slice_patterns)]

fn main() {
    let mut x: &[_] = &[1, 2, 3, 4];

    let mut result = vec![];
    loop {
        x = match *x {
            [1, n, 3, ref rest @ ..] => {
                result.push(n);
                rest
            }
            [n, ref rest @ ..] => {
                result.push(n);
                rest
            }
            [] =>
                break
        }
    }
    assert_eq!(result, [2, 4]);
}
