]> git.lizzy.rs Git - rust.git/commitdiff
Stabilize RFC 1506 - clarified ADT kinds
authorMatthew <mjjasper1@gmail.com>
Thu, 20 Apr 2017 13:05:46 +0000 (14:05 +0100)
committerMatthew <mjjasper1@gmail.com>
Thu, 20 Apr 2017 13:05:46 +0000 (14:05 +0100)
src/doc/unstable-book/src/SUMMARY.md
src/doc/unstable-book/src/language-features/relaxed-adts.md [deleted file]
src/libsyntax/feature_gate.rs
src/test/compile-fail/numeric-fields-feature-gate.rs [deleted file]
src/test/compile-fail/numeric-fields.rs
src/test/run-pass/numeric-fields.rs

index 3e0415439774c52d306bda0402a1ef4d2cd5dfd1..fa8be7bb23fb95b49d198bcc7b9278d6c01f47c4 100644 (file)
@@ -71,7 +71,6 @@
     - [prelude_import](language-features/prelude-import.md)
     - [proc_macro](language-features/proc-macro.md)
     - [quote](language-features/quote.md)
-    - [relaxed_adts](language-features/relaxed-adts.md)
     - [repr_simd](language-features/repr-simd.md)
     - [rustc_attrs](language-features/rustc-attrs.md)
     - [rustc_diagnostic_macros](language-features/rustc-diagnostic-macros.md)
diff --git a/src/doc/unstable-book/src/language-features/relaxed-adts.md b/src/doc/unstable-book/src/language-features/relaxed-adts.md
deleted file mode 100644 (file)
index 170570e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# `relaxed_adts`
-
-The tracking issue for this feature is: [#35626]
-
-[#35626]: https://github.com/rust-lang/rust/issues/35626
-
-------------------------
-
-
-
index 175447e11127058121478dd6a5b0208c0dbbad1a..81ab1a348d6cb0324243756967bd9479e16a6ca0 100644 (file)
@@ -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)),
 
@@ -420,7 +417,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.
@@ -1102,10 +1102,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() {
@@ -1283,15 +1279,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");
@@ -1335,15 +1322,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");
diff --git a/src/test/compile-fail/numeric-fields-feature-gate.rs b/src/test/compile-fail/numeric-fields-feature-gate.rs
deleted file mode 100644 (file)
index bd8ec16..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// gate-test-relaxed_adts
-
-struct S(u8);
-
-fn main() {
-    let s = S{0: 10}; //~ ERROR numeric fields in struct expressions are unstable
-    match s {
-        S{0: a, ..} => {} //~ ERROR numeric fields in struct patterns are unstable
-    }
-}
index a67707257d2f2ac44a1bd757c1142f07839a70b0..1a8603778ca73e800d217acf77252ada807c7aba 100644 (file)
@@ -8,8 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(relaxed_adts)]
-
 struct S(u8, u16);
 
 fn main() {
index 25e5a2a0fd5baeef69214cfce9b28f40a805cdc0..15f054de79d13e6559c07400f9e5a68c6e66f816 100644 (file)
@@ -8,8 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-#![feature(relaxed_adts)]
-
 struct S(u8, u16);
 
 fn main() {