]> git.lizzy.rs Git - rust.git/blob - src/test/ui/binding/pat-tuple-1.rs
Auto merge of #104730 - petrochenkov:modchild5, r=cjgillot
[rust.git] / src / test / ui / binding / pat-tuple-1.rs
1 // run-pass
2 fn tuple() {
3     let x = (1, 2, 3);
4     match x {
5         (a, b, ..) => {
6             assert_eq!(a, 1);
7             assert_eq!(b, 2);
8         }
9     }
10     match x {
11         (.., b, c) => {
12             assert_eq!(b, 2);
13             assert_eq!(c, 3);
14         }
15     }
16     match x {
17         (a, .., c) => {
18             assert_eq!(a, 1);
19             assert_eq!(c, 3);
20         }
21     }
22     match x {
23         (a, b, c) => {
24             assert_eq!(a, 1);
25             assert_eq!(b, 2);
26             assert_eq!(c, 3);
27         }
28     }
29     match x {
30         (a, b, c, ..) => {
31             assert_eq!(a, 1);
32             assert_eq!(b, 2);
33             assert_eq!(c, 3);
34         }
35     }
36     match x {
37         (.., a, b, c) => {
38             assert_eq!(a, 1);
39             assert_eq!(b, 2);
40             assert_eq!(c, 3);
41         }
42     }
43 }
44
45 fn tuple_struct() {
46     struct S(u8, u8, u8);
47
48     let x = S(1, 2, 3);
49     match x {
50         S(a, b, ..) => {
51             assert_eq!(a, 1);
52             assert_eq!(b, 2);
53         }
54     }
55     match x {
56         S(.., b, c) => {
57             assert_eq!(b, 2);
58             assert_eq!(c, 3);
59         }
60     }
61     match x {
62         S(a, .., c) => {
63             assert_eq!(a, 1);
64             assert_eq!(c, 3);
65         }
66     }
67     match x {
68         S(a, b, c) => {
69             assert_eq!(a, 1);
70             assert_eq!(b, 2);
71             assert_eq!(c, 3);
72         }
73     }
74     match x {
75         S(a, b, c, ..) => {
76             assert_eq!(a, 1);
77             assert_eq!(b, 2);
78             assert_eq!(c, 3);
79         }
80     }
81     match x {
82         S(.., a, b, c) => {
83             assert_eq!(a, 1);
84             assert_eq!(b, 2);
85             assert_eq!(c, 3);
86         }
87     }
88 }
89
90 fn main() {
91     tuple();
92     tuple_struct();
93 }