]> git.lizzy.rs Git - rust.git/commitdiff
Add one more test for vector destructuring
authorSeo Sanghyeon <sanxiyn@gmail.com>
Mon, 11 Mar 2013 10:53:41 +0000 (19:53 +0900)
committerSeo Sanghyeon <sanxiyn@gmail.com>
Mon, 11 Mar 2013 10:53:41 +0000 (19:53 +0900)
src/test/run-pass/vec-matching.rs

index e1243e18f5ffbde1720605d7fd2dd9ab5c5e3312..1402dd18fc72dbdc463939d0a510906478fe0cbb 100644 (file)
@@ -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();
+}