diff options
| author | Seo Sanghyeon <sanxiyn@gmail.com> | 2013-03-11 19:53:41 +0900 |
|---|---|---|
| committer | Seo Sanghyeon <sanxiyn@gmail.com> | 2013-03-11 19:53:41 +0900 |
| commit | 070137ce905d0177e8d112385f1d8dc7b2407006 (patch) | |
| tree | 250354cf3cd8fe9af0de4e0d8434c99a50742c75 /src | |
| parent | 9e85589ad3ba61169cd7722520981c1bebb5b542 (diff) | |
| download | rust-070137ce905d0177e8d112385f1d8dc7b2407006.tar.gz rust-070137ce905d0177e8d112385f1d8dc7b2407006.zip | |
Add one more test for vector destructuring
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/run-pass/vec-matching.rs | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/src/test/run-pass/vec-matching.rs b/src/test/run-pass/vec-matching.rs index e1243e18f5f..1402dd18fc7 100644 --- a/src/test/run-pass/vec-matching.rs +++ b/src/test/run-pass/vec-matching.rs @@ -1,4 +1,4 @@ -pub fn main() { +fn a() { let x = [1]; match x { [_, _, _, _, _, .._] => ::core::util::unreachable(), @@ -11,3 +11,44 @@ pub fn main() { [] => ::core::util::unreachable() } } + +fn b() { + let x = [1, 2, 3]; + match x { + [a, b, ..c] => { + fail_unless!(a == 1); + fail_unless!(b == 2); + fail_unless!(c == &[3]); + } + _ => fail!() + } + match x { + [..a, b, c] => { + fail_unless!(a == &[1]); + fail_unless!(b == 2); + fail_unless!(c == 3); + } + _ => fail!() + } + match x { + [a, ..b, c] => { + fail_unless!(a == 1); + fail_unless!(b == &[2]); + fail_unless!(c == 3); + } + _ => fail!() + } + match x { + [a, b, c] => { + fail_unless!(a == 1); + fail_unless!(b == 2); + fail_unless!(c == 3); + } + _ => fail!() + } +} + +pub fn main() { + a(); + b(); +} |
