]> git.lizzy.rs Git - rust.git/commitdiff
Removed feature gate.
authorAlexander Regueiro <alexreg@me.com>
Fri, 30 Nov 2018 03:55:26 +0000 (03:55 +0000)
committerAlexander Regueiro <alexreg@me.com>
Fri, 30 Nov 2018 22:12:39 +0000 (22:12 +0000)
src/librustc_resolve/lib.rs
src/libsyntax/feature_gate.rs
src/test/run-pass/self/self-in-typedefs.rs
src/test/ui/feature-gates/feature-gate-self_in_typedefs.rs [deleted file]
src/test/ui/feature-gates/feature-gate-self_in_typedefs.stderr [deleted file]

index c1d4643c2403ea633c4d439a79c299684cb7838d..fdac1e3b8165239b744c51b95c7fe4415040f33c 100644 (file)
@@ -2373,13 +2373,9 @@ fn resolve_adt(&mut self, item: &Item, generics: &Generics) {
         self.with_current_self_item(item, |this| {
             this.with_type_parameter_rib(HasTypeParameters(generics, ItemRibKind), |this| {
                 let item_def_id = this.definitions.local_def_id(item.id);
-                if this.session.features_untracked().self_in_typedefs {
-                    this.with_self_rib(Def::SelfTy(None, Some(item_def_id)), |this| {
-                        visit::walk_item(this, item);
-                    });
-                } else {
+                this.with_self_rib(Def::SelfTy(None, Some(item_def_id)), |this| {
                     visit::walk_item(this, item);
-                }
+                });
             });
         });
     }
@@ -3185,16 +3181,8 @@ fn smart_resolve_path_fragment(&mut self,
             if is_self_type(path, ns) {
                 __diagnostic_used!(E0411);
                 err.code(DiagnosticId::Error("E0411".into()));
-                let available_in = if this.session.features_untracked().self_in_typedefs {
-                    "impls, traits, and type definitions"
-                } else {
-                    "traits and impls"
-                };
-                err.span_label(span, format!("`Self` is only available in {}", available_in));
-                if this.current_self_item.is_some() && nightly_options::is_nightly_build() {
-                    err.help("add #![feature(self_in_typedefs)] to the crate attributes \
-                              to enable");
-                }
+                err.span_label(span, format!("`Self` is only available in impls, traits, \
+                                              and type definitions"));
                 return (err, Vec::new());
             }
             if is_self_value(path, ns) {
index 2402de5a816b71492afb8e7707cfd0a0cd135015..dd61fd6826f13cff08a4293ee96c4301c966afe3 100644 (file)
@@ -462,9 +462,6 @@ pub fn walk_feature_fields<F>(&self, mut f: F)
     // Allows `use x::y;` to resolve through `self::x`, not just `::x`
     (active, uniform_paths, "1.30.0", Some(53130), None),
 
-    // Allows `Self` in type definitions
-    (active, self_in_typedefs, "1.30.0", Some(49303), None),
-
     // Allows unsized rvalues at arguments and parameters
     (active, unsized_locals, "1.30.0", Some(48055), None),
 
@@ -672,21 +669,23 @@ pub fn walk_feature_fields<F>(&self, mut f: F)
     (accepted, extern_prelude, "1.30.0", Some(44660), None),
     // Parentheses in patterns
     (accepted, pattern_parentheses, "1.31.0", Some(51087), None),
-    // Allows the definition of `const fn` functions.
+    // Allows the definition of `const fn` functions
     (accepted, min_const_fn, "1.31.0", Some(53555), None),
     // Scoped lints
     (accepted, tool_lints, "1.31.0", Some(44690), None),
     // impl<I:Iterator> Iterator for &mut Iterator
     // impl Debug for Foo<'_>
     (accepted, impl_header_lifetime_elision, "1.31.0", Some(15872), None),
-    // `extern crate foo as bar;` puts `bar` into extern prelude.
+    // `extern crate foo as bar;` puts `bar` into extern prelude
     (accepted, extern_crate_item_prelude, "1.31.0", Some(55599), None),
     // Allows use of the :literal macro fragment specifier (RFC 1576)
     (accepted, macro_literal_matcher, "1.31.0", Some(35625), None),
     // Use `?` as the Kleene "at most one" operator
     (accepted, macro_at_most_once_rep, "1.32.0", Some(48075), None),
-    // Self struct constructor  (RFC 2302)
+    // `Self` struct constructor (RFC 2302)
     (accepted, self_struct_ctor, "1.32.0", Some(51994), None),
+    // `Self` in type definitions (RFC 2300)
+    (accepted, self_in_typedefs, "1.32.0", Some(49303), None),
 );
 
 // If you change this, please modify `src/doc/unstable-book` as well. You must
index 92eccb47e1894dfca8a5b9485005edc44b29919e..84a7e18f91ad2cbd70d036252e3a770f3ea2d14e 100644 (file)
@@ -9,12 +9,11 @@
 // except according to those terms.
 
 // run-pass
-#![allow(unions_with_drop_fields)]
 
-#![feature(self_in_typedefs)]
 #![feature(untagged_unions)]
 
 #![allow(dead_code)]
+#![allow(unions_with_drop_fields)]
 
 enum A<'a, T: 'a>
 where
diff --git a/src/test/ui/feature-gates/feature-gate-self_in_typedefs.rs b/src/test/ui/feature-gates/feature-gate-self_in_typedefs.rs
deleted file mode 100644 (file)
index 4b476a0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2018 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.
-
-enum StackList<'a, T: 'a> {
-    Nil,
-    Cons(T, &'a Self)
-    //~^ ERROR cannot find type `Self` in this scope
-    //~| `Self` is only available in traits and impls
-}
-
-fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-self_in_typedefs.stderr b/src/test/ui/feature-gates/feature-gate-self_in_typedefs.stderr
deleted file mode 100644 (file)
index ab04953..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-error[E0411]: cannot find type `Self` in this scope
-  --> $DIR/feature-gate-self_in_typedefs.rs:13:17
-   |
-LL |     Cons(T, &'a Self)
-   |                 ^^^^ `Self` is only available in traits and impls
-   |
-   = help: add #![feature(self_in_typedefs)] to the crate attributes to enable
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0411`.