From 6365c4ac5f81210ee6921484736b398244646381 Mon Sep 17 00:00:00 2001 From: Dmitry Ermolov Date: Fri, 16 Aug 2013 00:56:04 +0400 Subject: [PATCH] Test for issue #6338. --- src/test/run-pass/match-pipe-binding.rs | 70 +++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/test/run-pass/match-pipe-binding.rs diff --git a/src/test/run-pass/match-pipe-binding.rs b/src/test/run-pass/match-pipe-binding.rs new file mode 100644 index 0000000000000..02dd10b35c9a7 --- /dev/null +++ b/src/test/run-pass/match-pipe-binding.rs @@ -0,0 +1,70 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// xfail-test + +fn test1() { + // from issue 6338 + match ((1, ~"a"), (2, ~"b")) { + ((1, a), (2, b)) | ((2, b), (1, a)) => { + assert_eq!(a, ~"a"); + assert_eq!(b, ~"b"); + }, + _ => fail!(), + } +} + +fn test2() { + match (1, 2, 3) { + (1, a, b) | (2, b, a) => { + assert_eq!(a, 2); + assert_eq!(b, 3); + }, + _ => fail!(), + } +} + +fn test3() { + match (1, 2, 3) { + (1, ref a, ref b) | (2, ref b, ref a) => { + assert_eq!(*a, 2); + assert_eq!(*b, 3); + }, + _ => fail!(), + } +} + +fn test4() { + match (1, 2, 3) { + (1, a, b) | (2, b, a) if a == 2 => { + assert_eq!(a, 2); + assert_eq!(b, 3); + }, + _ => fail!(), + } +} + +fn test5() { + match (1, 2, 3) { + (1, ref a, ref b) | (2, ref b, ref a) if *a == 2 => { + assert_eq!(*a, 2); + assert_eq!(*b, 3); + }, + _ => fail!(), + } +} + +fn main() { + test1(); + test2(); + test3(); + test4(); + test5(); +}