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