about summary refs log tree commit diff
path: root/tests/ui/pattern/slice-pattern-recursion-15104.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/pattern/slice-pattern-recursion-15104.rs')
-rw-r--r--tests/ui/pattern/slice-pattern-recursion-15104.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/ui/pattern/slice-pattern-recursion-15104.rs b/tests/ui/pattern/slice-pattern-recursion-15104.rs
new file mode 100644
index 00000000000..24e3fe78de0
--- /dev/null
+++ b/tests/ui/pattern/slice-pattern-recursion-15104.rs
@@ -0,0 +1,15 @@
+//! Regression test for https://github.com/rust-lang/rust/issues/15104
+
+//@ run-pass
+
+fn main() {
+    assert_eq!(count_members(&[1, 2, 3, 4]), 4);
+}
+
+fn count_members(v: &[usize]) -> usize {
+    match *v {
+        []         => 0,
+        [_]        => 1,
+        [_, ref xs @ ..] => 1 + count_members(xs)
+    }
+}