]> git.lizzy.rs Git - rust.git/commitdiff
Adjust feature gating of subslice patterns accordingly.
authorMazdak Farrokhzad <twingoow@gmail.com>
Tue, 9 Jul 2019 07:12:49 +0000 (09:12 +0200)
committerMazdak Farrokhzad <twingoow@gmail.com>
Sun, 28 Jul 2019 04:53:38 +0000 (06:53 +0200)
src/libsyntax/feature_gate.rs

index 72184b0bd6400374f59ad582793a44c6707a9b25..384474b08f6ee28a33c46bc66b2179693f258de5 100644 (file)
@@ -2151,11 +2151,23 @@ fn visit_arm(&mut self, arm: &'a ast::Arm) {
     }
 
     fn visit_pat(&mut self, pattern: &'a ast::Pat) {
-        match pattern.node {
-            PatKind::Slice(_, Some(ref subslice), _) => {
-                gate_feature_post!(&self, slice_patterns,
-                                   subslice.span,
-                                   "syntax for subslices in slice patterns is not yet stabilized");
+        match &pattern.node {
+            PatKind::Slice(pats) => {
+                for pat in &*pats {
+                    let span = pat.span;
+                    let inner_pat = match &pat.node {
+                        PatKind::Ident(.., Some(pat)) => pat,
+                        _ => pat,
+                    };
+                    if inner_pat.is_rest() {
+                        gate_feature_post!(
+                            &self,
+                            slice_patterns,
+                            span,
+                            "subslice patterns are unstable"
+                        );
+                    }
+                }
             }
             PatKind::Box(..) => {
                 gate_feature_post!(&self, box_patterns,