Rollup merge of #54072 - blitzerr:master, r=Mark-Simulacrum
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.
This commit is contained in:
commit
e7b45a0b1f
8 changed files with 3 additions and 185 deletions
|
@ -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
|
||||
|
@ -406,9 +406,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`,
|
||||
|
@ -1498,31 +1497,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() {
|
||||
|
@ -2092,7 +2066,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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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 <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.
|
||||
|
||||
// error-pattern: mod statements in non-mod.rs files are unstable
|
||||
|
||||
mod mod_file_not_owning_aux1;
|
||||
|
||||
fn main() {}
|
|
@ -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`.
|
|
@ -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 <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.
|
||||
|
||||
// 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;
|
|
@ -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`.
|
|
@ -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 <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.
|
||||
//
|
||||
// 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();
|
||||
}
|
|
@ -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`.
|
|
@ -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 <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.
|
||||
|
||||
// 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();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue