]> git.lizzy.rs Git - rust.git/blobdiff - src/libsyntax/feature_gate.rs
dotdoteq_in_patterns feature gate
[rust.git] / src / libsyntax / feature_gate.rs
index 2fc451d5d004aef5de84a6560cc17795fdf8aad5..aa5a41430274a74348ef6f8253fba6a8eb89fcc3 100644 (file)
@@ -26,7 +26,7 @@
 use self::AttributeGate::*;
 
 use abi::Abi;
-use ast::{self, NodeId, PatKind, RangeEnd};
+use ast::{self, NodeId, PatKind, RangeEnd, RangeSyntax};
 use attr;
 use codemap::Spanned;
 use syntax_pos::Span;
@@ -392,6 +392,9 @@ pub fn new() -> Features {
 
     // allow `'_` placeholder lifetimes
     (active, underscore_lifetimes, "1.22.0", Some(44524)),
+
+    // allow `..=` in patterns (RFC 1192)
+    (active, dotdoteq_in_patterns, "1.22.0", Some(28237)),
 );
 
 declare_features! (
@@ -1491,6 +1494,10 @@ fn visit_pat(&mut self, pattern: &'a ast::Pat) {
                 gate_feature_post!(&self, exclusive_range_pattern, pattern.span,
                                    "exclusive range pattern syntax is experimental");
             }
+            PatKind::Range(_, _, RangeEnd::Included(RangeSyntax::DotDotEq)) => {
+                gate_feature_post!(&self, dotdoteq_in_patterns, pattern.span,
+                                   "`..=` syntax in patterns is experimental");
+            }
             _ => {}
         }
         visit::walk_pat(self, pattern)