about summary refs log tree commit diff
path: root/src/test/ui/half-open-range-patterns/slice_pattern_syntax_problem0.rs
diff options
context:
space:
mode:
authorJubilee Young <workingjubilee@gmail.com>2021-05-27 14:36:45 -0700
committerJubilee Young <workingjubilee@gmail.com>2021-06-03 20:49:33 -0700
commit43bad44ff01dd5035b961b366e65f705241b428d (patch)
tree502fd4b70c3a71c2102b7cfda8d9a10c1ed9b0de /src/test/ui/half-open-range-patterns/slice_pattern_syntax_problem0.rs
parent45d9dd69a7724986f1b80cf9462323b48d4e2529 (diff)
downloadrust-43bad44ff01dd5035b961b366e65f705241b428d.tar.gz
rust-43bad44ff01dd5035b961b366e65f705241b428d.zip
Reestablish feature gate for RangeFrom in slices
Diffstat (limited to 'src/test/ui/half-open-range-patterns/slice_pattern_syntax_problem0.rs')
-rw-r--r--src/test/ui/half-open-range-patterns/slice_pattern_syntax_problem0.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/ui/half-open-range-patterns/slice_pattern_syntax_problem0.rs b/src/test/ui/half-open-range-patterns/slice_pattern_syntax_problem0.rs
new file mode 100644
index 00000000000..2884a27349f
--- /dev/null
+++ b/src/test/ui/half-open-range-patterns/slice_pattern_syntax_problem0.rs
@@ -0,0 +1,16 @@
+#![feature(half_open_range_patterns)]
+#![feature(exclusive_range_pattern)]
+
+fn main() {
+    let xs = [13, 1, 5, 2, 3, 1, 21, 8];
+    let [a, b, c, rest @ ..] = xs;
+    // Consider the following example:
+    assert!(a == 13 && b == 1 && c == 5 && rest.len() == 5);
+
+    // What if we wanted to pull this apart without individually binding a, b, and c?
+    let [first_three @ ..3, rest @ 2..] = xs;
+    //~^ pattern requires 2 elements but array has 8
+    // This is somewhat unintuitive and makes slice patterns exceedingly verbose.
+    // We want to stabilize half-open RangeFrom (`X..`) patterns
+    // but without banning us from using them for a more efficient slice pattern syntax.
+}