//@ check-pass

#![allow(unused_variables)]
#![feature(generic_arg_infer)]

struct Zeroes;
impl Into<&'static [usize; 3]> for Zeroes {
    fn into(self) -> &'static [usize; 3] {
        &[0; 3]
    }
}
impl Into<[usize; 3]> for Zeroes {
    fn into(self) -> [usize; 3] {
        [0; 3]
    }
}
fn main() {
    let [a, b, c] = Zeroes.into();
    let [d, e, f] = <Zeroes as Into<&'static [usize; 3]>>::into(Zeroes);
    let &[g, h, i] = Zeroes.into();
    let [j, k, l]: [usize; _] = Zeroes.into();
    let [m, n, o]: &[usize; _] = Zeroes.into();

    // check the binding mode of these patterns:
    let _: &[usize] = &[a, b, c, g, h, i, j, k, l];
    let _: &[&usize] = &[d, e, f, m, n, o];
}
