1 // run-pass
2 
3 #![allow(non_shorthand_field_patterns)]
4 #![allow(dead_code)]
5 #![allow(unused_variables)]
6 
7 struct Foo(isize, isize, isize, isize);
8 struct Bar{a: isize, b: isize, c: isize, d: isize}
9 
main()10 pub fn main() {
11     let Foo(..) = Foo(5, 5, 5, 5);
12     let Foo(..) = Foo(5, 5, 5, 5);
13     let Bar{..} = Bar{a: 5, b: 5, c: 5, d: 5};
14     let (..) = (5, 5, 5, 5);
15     let Foo(a, b, ..) = Foo(5, 5, 5, 5);
16     let Foo(.., d) = Foo(5, 5, 5, 5);
17     let (a, b, ..) = (5, 5, 5, 5);
18     let (.., c, d) = (5, 5, 5, 5);
19     let Bar{b: b, ..} = Bar{a: 5, b: 5, c: 5, d: 5};
20     match [5, 5, 5, 5] {
21         [..] => { }
22     }
23     match [5, 5, 5, 5] {
24         [a, ..] => { }
25     }
26     match [5, 5, 5, 5] {
27         [.., b] => { }
28     }
29     match [5, 5, 5, 5] {
30         [a, .., b] => { }
31     }
32     match [5, 5, 5] {
33         [..] => { }
34     }
35     match [5, 5, 5] {
36         [a, ..] => { }
37     }
38     match [5, 5, 5] {
39         [.., a] => { }
40     }
41     match [5, 5, 5] {
42         [a, .., b] => { }
43     }
44 }
45