]> git.lizzy.rs Git - rust.git/blob - src/test/ui/binding/match-pipe-binding.rs
Auto merge of #99612 - yanchen4791:issue-95079-fix, r=compiler-errors
[rust.git] / src / test / ui / binding / match-pipe-binding.rs
1 // run-pass
2
3 fn test1() {
4     // from issue 6338
5     match ((1, "a".to_string()), (2, "b".to_string())) {
6         ((1, a), (2, b)) | ((2, b), (1, a)) => {
7                 assert_eq!(a, "a".to_string());
8                 assert_eq!(b, "b".to_string());
9             },
10             _ => panic!(),
11     }
12 }
13
14 fn test2() {
15     match (1, 2, 3) {
16         (1, a, b) | (2, b, a) => {
17             assert_eq!(a, 2);
18             assert_eq!(b, 3);
19         },
20         _ => panic!(),
21     }
22 }
23
24 fn test3() {
25     match (1, 2, 3) {
26         (1, ref a, ref b) | (2, ref b, ref a) => {
27             assert_eq!(*a, 2);
28             assert_eq!(*b, 3);
29         },
30         _ => panic!(),
31     }
32 }
33
34 fn test4() {
35     match (1, 2, 3) {
36         (1, a, b) | (2, b, a) if a == 2 => {
37             assert_eq!(a, 2);
38             assert_eq!(b, 3);
39         },
40         _ => panic!(),
41     }
42 }
43
44 fn test5() {
45     match (1, 2, 3) {
46         (1, ref a, ref b) | (2, ref b, ref a) if *a == 2 => {
47             assert_eq!(*a, 2);
48             assert_eq!(*b, 3);
49         },
50         _ => panic!(),
51     }
52 }
53
54 pub fn main() {
55     test1();
56     test2();
57     test3();
58     test4();
59     test5();
60 }