From 7f6b60899502c45fc0b58adf79d09fb77ffc8884 Mon Sep 17 00:00:00 2001 From: Rusty Blitzerr Date: Sat, 8 Sep 2018 19:41:46 -0700 Subject: [PATCH] Stabilization change for mod.rs This change is in response to https://github.com/rust-lang/rust/issues/53125. The patch makes the feature accepted and removes the tests that tested the non-accepted status of the feature. --- src/libsyntax/feature_gate.rs | 33 ++-------------- .../mod_file_not_owning.rs | 15 ------- .../mod_file_not_owning.stderr | 15 ------- .../unowned_mod_with_path.rs | 15 ------- .../unowned_mod_with_path.stderr | 15 ------- src/test/ui/non_modrs_mods/non_modrs_mods.rs | 28 ------------- .../ui/non_modrs_mods/non_modrs_mods.stderr | 39 ------------------- .../run-pass/non_modrs_mods/non_modrs_mods.rs | 28 ------------- 8 files changed, 3 insertions(+), 185 deletions(-) delete mode 100644 src/test/ui/directory_ownership/mod_file_not_owning.rs delete mode 100644 src/test/ui/directory_ownership/mod_file_not_owning.stderr delete mode 100644 src/test/ui/directory_ownership/unowned_mod_with_path.rs delete mode 100644 src/test/ui/directory_ownership/unowned_mod_with_path.stderr delete mode 100644 src/test/ui/non_modrs_mods/non_modrs_mods.rs delete mode 100644 src/test/ui/non_modrs_mods/non_modrs_mods.stderr delete mode 100644 src/test/ui/run-pass/non_modrs_mods/non_modrs_mods.rs diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 0270e36db1177..e039731202f59 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -37,7 +37,7 @@ use visit::{self, FnKind, Visitor}; use parse::ParseSess; use symbol::{keywords, Symbol}; -use std::{env, path}; +use std::{env}; macro_rules! set { // The const_fn feature also enables the min_const_fn feature, because `min_const_fn` allows @@ -409,9 +409,6 @@ declare_features! ( // Resolve absolute paths as paths from other crates (active, extern_absolute_paths, "1.24.0", Some(44660), Some(Edition::Edition2018)), - // `foo.rs` as an alternative to `foo/mod.rs` - (active, non_modrs_mods, "1.24.0", Some(44660), Some(Edition::Edition2018)), - // `extern` in paths (active, extern_in_paths, "1.23.0", Some(44660), None), @@ -660,6 +657,8 @@ declare_features! ( (accepted, repr_transparent, "1.28.0", Some(43036), None), // Defining procedural macros in `proc-macro` crates (accepted, proc_macro, "1.29.0", Some(38356), None), + // `foo.rs` as an alternative to `foo/mod.rs` + (accepted, non_modrs_mods, "1.30.0", Some(44660), None), // Allows use of the :vis macro fragment specifier (accepted, macro_vis_matcher, "1.30.0", Some(41022), None), // Allows importing and reexporting macros with `use`, @@ -1494,31 +1493,6 @@ impl<'a> PostExpansionVisitor<'a> { } } -impl<'a> PostExpansionVisitor<'a> { - fn whole_crate_feature_gates(&mut self, _krate: &ast::Crate) { - for &(ident, span) in &*self.context.parse_sess.non_modrs_mods.borrow() { - if !span.allows_unstable() { - let cx = &self.context; - let level = GateStrength::Hard; - let has_feature = cx.features.non_modrs_mods; - let name = "non_modrs_mods"; - debug!("gate_feature(feature = {:?}, span = {:?}); has? {}", - name, span, has_feature); - - if !has_feature && !span.allows_unstable() { - leveled_feature_err( - cx.parse_sess, name, span, GateIssue::Language, - "mod statements in non-mod.rs files are unstable", level - ) - .help(&format!("on stable builds, rename this file to {}{}mod.rs", - ident, path::MAIN_SEPARATOR)) - .emit(); - } - } - } - } -} - impl<'a> Visitor<'a> for PostExpansionVisitor<'a> { fn visit_attribute(&mut self, attr: &ast::Attribute) { if !attr.span.allows_unstable() { @@ -2088,7 +2062,6 @@ pub fn check_crate(krate: &ast::Crate, }; let visitor = &mut PostExpansionVisitor { context: &ctx }; - visitor.whole_crate_feature_gates(krate); visit::walk_crate(visitor, krate); } diff --git a/src/test/ui/directory_ownership/mod_file_not_owning.rs b/src/test/ui/directory_ownership/mod_file_not_owning.rs deleted file mode 100644 index ff93fddf9b366..0000000000000 --- a/src/test/ui/directory_ownership/mod_file_not_owning.rs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2014 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// error-pattern: mod statements in non-mod.rs files are unstable - -mod mod_file_not_owning_aux1; - -fn main() {} diff --git a/src/test/ui/directory_ownership/mod_file_not_owning.stderr b/src/test/ui/directory_ownership/mod_file_not_owning.stderr deleted file mode 100644 index e2937573997fc..0000000000000 --- a/src/test/ui/directory_ownership/mod_file_not_owning.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error[E0658]: mod statements in non-mod.rs files are unstable (see issue #44660) - --> $DIR/mod_file_not_owning_aux1.rs:14:17 - | -LL | () => { mod mod_file_not_owning_aux2; } - | ^^^^^^^^^^^^^^^^^^^^^^^^ -LL | } -LL | m!(); - | ----- in this macro invocation - | - = help: add #![feature(non_modrs_mods)] to the crate attributes to enable - = help: on stable builds, rename this file to mod_file_not_owning_aux1/mod.rs - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/directory_ownership/unowned_mod_with_path.rs b/src/test/ui/directory_ownership/unowned_mod_with_path.rs deleted file mode 100644 index 0cffb7cc9e517..0000000000000 --- a/src/test/ui/directory_ownership/unowned_mod_with_path.rs +++ /dev/null @@ -1,15 +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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// error-pattern: mod statements in non-mod.rs files are unstable - -// This is not a directory owner since the file name is not "mod.rs". -#[path = "mod_file_not_owning_aux1.rs"] -mod foo; diff --git a/src/test/ui/directory_ownership/unowned_mod_with_path.stderr b/src/test/ui/directory_ownership/unowned_mod_with_path.stderr deleted file mode 100644 index 0c0b428143416..0000000000000 --- a/src/test/ui/directory_ownership/unowned_mod_with_path.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error[E0658]: mod statements in non-mod.rs files are unstable (see issue #44660) - --> $DIR/mod_file_not_owning_aux1.rs:14:17 - | -LL | () => { mod mod_file_not_owning_aux2; } - | ^^^^^^^^^^^^^^^^^^^^^^^^ -LL | } -LL | m!(); - | ----- in this macro invocation - | - = help: add #![feature(non_modrs_mods)] to the crate attributes to enable - = help: on stable builds, rename this file to foo/mod.rs - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/non_modrs_mods/non_modrs_mods.rs b/src/test/ui/non_modrs_mods/non_modrs_mods.rs deleted file mode 100644 index 9dc85f4d3f92d..0000000000000 --- a/src/test/ui/non_modrs_mods/non_modrs_mods.rs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2017 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. -// -// Tests the formatting of the feature-gate errors for non_modrs_mods -// -// gate-test-non_modrs_mods -// ignore-windows -// ignore-pretty issue #37195 -pub mod modrs_mod; -pub mod foors_mod; - -#[path = "some_crazy_attr_mod_dir/arbitrary_name.rs"] -pub mod attr_mod; - -pub fn main() { - modrs_mod::inner_modrs_mod::innest::foo(); - modrs_mod::inner_foors_mod::innest::foo(); - foors_mod::inner_modrs_mod::innest::foo(); - foors_mod::inner_foors_mod::innest::foo(); - attr_mod::inner_modrs_mod::innest::foo(); -} diff --git a/src/test/ui/non_modrs_mods/non_modrs_mods.stderr b/src/test/ui/non_modrs_mods/non_modrs_mods.stderr deleted file mode 100644 index c45ab734fd579..0000000000000 --- a/src/test/ui/non_modrs_mods/non_modrs_mods.stderr +++ /dev/null @@ -1,39 +0,0 @@ -error[E0658]: mod statements in non-mod.rs files are unstable (see issue #44660) - --> $DIR/modrs_mod/inner_foors_mod.rs:11:9 - | -LL | pub mod innest; - | ^^^^^^ - | - = help: add #![feature(non_modrs_mods)] to the crate attributes to enable - = help: on stable builds, rename this file to inner_foors_mod/mod.rs - -error[E0658]: mod statements in non-mod.rs files are unstable (see issue #44660) - --> $DIR/foors_mod.rs:13:9 - | -LL | pub mod inner_modrs_mod; - | ^^^^^^^^^^^^^^^ - | - = help: add #![feature(non_modrs_mods)] to the crate attributes to enable - = help: on stable builds, rename this file to foors_mod/mod.rs - -error[E0658]: mod statements in non-mod.rs files are unstable (see issue #44660) - --> $DIR/foors_mod.rs:14:9 - | -LL | pub mod inner_foors_mod; - | ^^^^^^^^^^^^^^^ - | - = help: add #![feature(non_modrs_mods)] to the crate attributes to enable - = help: on stable builds, rename this file to foors_mod/mod.rs - -error[E0658]: mod statements in non-mod.rs files are unstable (see issue #44660) - --> $DIR/foors_mod/inner_foors_mod.rs:11:9 - | -LL | pub mod innest; - | ^^^^^^ - | - = help: add #![feature(non_modrs_mods)] to the crate attributes to enable - = help: on stable builds, rename this file to inner_foors_mod/mod.rs - -error: aborting due to 4 previous errors - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/run-pass/non_modrs_mods/non_modrs_mods.rs b/src/test/ui/run-pass/non_modrs_mods/non_modrs_mods.rs deleted file mode 100644 index a9b240be804e3..0000000000000 --- a/src/test/ui/run-pass/non_modrs_mods/non_modrs_mods.rs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2017 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// run-pass -// -// ignore-pretty issue #37195 -#![feature(non_modrs_mods)] - -pub mod modrs_mod; -pub mod foors_mod; - -#[path = "some_crazy_attr_mod_dir/arbitrary_name.rs"] -pub mod attr_mod; - -pub fn main() { - modrs_mod::inner_modrs_mod::innest::foo(); - modrs_mod::inner_foors_mod::innest::foo(); - foors_mod::inner_modrs_mod::innest::foo(); - foors_mod::inner_foors_mod::innest::foo(); - attr_mod::inner_modrs_mod::innest::foo(); -}