X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Flibsyntax%2Ffeature_gate.rs;h=fa0e45194dcb4e93f33962a379fd5f70cc171abf;hb=8a3ea01bcae85a3ed0c90ca5603cd88c469172c3;hp=9b55a860b3595a0e4edd1bfb5e837d22f71ee7fd;hpb=6d841da4a0d7629f826117f99052e3d4a7997a7e;p=rust.git diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 9b55a860b35..fa0e45194dc 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -269,9 +269,6 @@ pub fn new() -> Features { // Allows `impl Trait` in function return types. (active, conservative_impl_trait, "1.12.0", Some(34511)), - // Permits numeric fields in struct expressions and patterns. - (active, relaxed_adts, "1.12.0", Some(35626)), - // The `!` type (active, never_type, "1.13.0", Some(35121)), @@ -423,7 +420,10 @@ pub fn new() -> Features { (accepted, pub_restricted, "1.18.0", Some(32409)), // The #![windows_subsystem] attribute (accepted, windows_subsystem, "1.18.0", Some(37499)), + // Permits numeric fields in struct expressions and patterns. + (accepted, relaxed_adts, "1.18.0", Some(35626)), ); + // If you change this, please modify src/doc/unstable-book as well. You must // move that documentation into the relevant place in the other docs, and // remove the chapter on the flag. @@ -1105,10 +1105,6 @@ fn contains_novel_literal(item: &ast::MetaItem) -> bool { } } -fn starts_with_digit(s: &str) -> bool { - s.as_bytes().first().cloned().map_or(false, |b| b >= b'0' && b <= b'9') -} - impl<'a> Visitor<'a> for PostExpansionVisitor<'a> { fn visit_attribute(&mut self, attr: &ast::Attribute) { if !attr.span.allows_unstable() { @@ -1291,15 +1287,6 @@ fn visit_expr(&mut self, e: &'a ast::Expr) { ast::ExprKind::InPlace(..) => { gate_feature_post!(&self, placement_in_syntax, e.span, EXPLAIN_PLACEMENT_IN); } - ast::ExprKind::Struct(_, ref fields, _) => { - for field in fields { - if starts_with_digit(&field.ident.node.name.as_str()) { - gate_feature_post!(&self, relaxed_adts, - field.span, - "numeric fields in struct expressions are unstable"); - } - } - } ast::ExprKind::Break(_, Some(_)) => { gate_feature_post!(&self, loop_break_value, e.span, "`break` with a value is experimental"); @@ -1343,15 +1330,6 @@ fn visit_pat(&mut self, pattern: &'a ast::Pat) { pattern.span, "box pattern syntax is experimental"); } - PatKind::Struct(_, ref fields, _) => { - for field in fields { - if starts_with_digit(&field.node.ident.name.as_str()) { - gate_feature_post!(&self, relaxed_adts, - field.span, - "numeric fields in struct patterns are unstable"); - } - } - } PatKind::Range(_, _, RangeEnd::Excluded) => { gate_feature_post!(&self, exclusive_range_pattern, pattern.span, "exclusive range pattern syntax is experimental");