]> git.proxmox.com Git - rustc.git/blame - src/test/run-pass/match-pipe-binding.rs
Imported Upstream version 1.0.0~beta
[rustc.git] / src / test / run-pass / match-pipe-binding.rs
CommitLineData
1a4d82fc
JJ
1// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2// file at the top-level directory of this distribution and at
3// http://rust-lang.org/COPYRIGHT.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
c34b1796
AL
11// pretty-expanded FIXME #23616
12
1a4d82fc
JJ
13fn test1() {
14 // from issue 6338
85aaf69f 15 match ((1, "a".to_string()), (2, "b".to_string())) {
1a4d82fc
JJ
16 ((1, a), (2, b)) | ((2, b), (1, a)) => {
17 assert_eq!(a, "a".to_string());
18 assert_eq!(b, "b".to_string());
19 },
20 _ => panic!(),
21 }
22}
23
24fn test2() {
85aaf69f 25 match (1, 2, 3) {
1a4d82fc
JJ
26 (1, a, b) | (2, b, a) => {
27 assert_eq!(a, 2);
28 assert_eq!(b, 3);
29 },
30 _ => panic!(),
31 }
32}
33
34fn test3() {
85aaf69f 35 match (1, 2, 3) {
1a4d82fc
JJ
36 (1, ref a, ref b) | (2, ref b, ref a) => {
37 assert_eq!(*a, 2);
38 assert_eq!(*b, 3);
39 },
40 _ => panic!(),
41 }
42}
43
44fn test4() {
85aaf69f 45 match (1, 2, 3) {
1a4d82fc
JJ
46 (1, a, b) | (2, b, a) if a == 2 => {
47 assert_eq!(a, 2);
48 assert_eq!(b, 3);
49 },
50 _ => panic!(),
51 }
52}
53
54fn test5() {
85aaf69f 55 match (1, 2, 3) {
1a4d82fc
JJ
56 (1, ref a, ref b) | (2, ref b, ref a) if *a == 2 => {
57 assert_eq!(*a, 2);
58 assert_eq!(*b, 3);
59 },
60 _ => panic!(),
61 }
62}
63
64pub fn main() {
65 test1();
66 test2();
67 test3();
68 test4();
69 test5();
70}