diff --git a/compiler/rustc_expand/src/mbe/macro_rules.rs b/compiler/rustc_expand/src/mbe/macro_rules.rs index a255b4f83acbe10aa3b770f3a4c15d78e12587a8..8b68c94e61a384c19603352176b09e396236e31e 100644 --- a/compiler/rustc_expand/src/mbe/macro_rules.rs +++ b/compiler/rustc_expand/src/mbe/macro_rules.rs @@ -18,7 +18,9 @@ use rustc_data_structures::sync::Lrc; use rustc_errors::{Applicability, DiagnosticBuilder}; use rustc_feature::Features; -use rustc_lint_defs::builtin::{OR_PATTERNS_BACK_COMPAT, SEMICOLON_IN_EXPRESSIONS_FROM_MACROS}; +use rustc_lint_defs::builtin::{ + RUST_2021_INCOMPATIBLE_OR_PATTERNS, SEMICOLON_IN_EXPRESSIONS_FROM_MACROS, +}; use rustc_lint_defs::BuiltinLintDiagnostics; use rustc_parse::parser::Parser; use rustc_session::parse::ParseSess; @@ -975,7 +977,7 @@ fn check_matcher_core( Some(NonterminalKind::PatParam { inferred: false }), )); sess.buffer_lint_with_diagnostic( - &OR_PATTERNS_BACK_COMPAT, + &RUST_2021_INCOMPATIBLE_OR_PATTERNS, span, ast::CRATE_NODE_ID, "the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro", diff --git a/compiler/rustc_lint/src/lib.rs b/compiler/rustc_lint/src/lib.rs index b3b759a466abbbc3961d3eda047469d9e956831f..2e5ef8daf14635a270c20928888ead22a2ba6eb4 100644 --- a/compiler/rustc_lint/src/lib.rs +++ b/compiler/rustc_lint/src/lib.rs @@ -326,6 +326,7 @@ fn register_builtins(store: &mut LintStore, no_interleave_lints: bool) { store.register_renamed("overlapping_patterns", "overlapping_range_endpoints"); store.register_renamed("safe_packed_borrows", "unaligned_references"); store.register_renamed("disjoint_capture_migration", "rust_2021_incompatible_closure_captures"); + store.register_renamed("or_patterns_back_compat", "rust_2021_incompatible_or_patterns"); // These were moved to tool lints, but rustc still sees them when compiling normally, before // tool lints are registered, so `check_tool_name_for_backwards_compat` doesn't work. Use diff --git a/compiler/rustc_lint_defs/src/builtin.rs b/compiler/rustc_lint_defs/src/builtin.rs index 5c0b7aaf11b6e6949050fcd9e7cbe92526f66efa..ed39815ff561b6d3636de8a38e7eee3bd057605d 100644 --- a/compiler/rustc_lint_defs/src/builtin.rs +++ b/compiler/rustc_lint_defs/src/builtin.rs @@ -2970,7 +2970,7 @@ RUST_2021_INCOMPATIBLE_CLOSURE_CAPTURES, LEGACY_DERIVE_HELPERS, PROC_MACRO_BACK_COMPAT, - OR_PATTERNS_BACK_COMPAT, + RUST_2021_INCOMPATIBLE_OR_PATTERNS, LARGE_ASSIGNMENTS, FUTURE_PRELUDE_COLLISION, RESERVED_PREFIX, @@ -3183,12 +3183,12 @@ } declare_lint! { - /// The `or_patterns_back_compat` lint detects usage of old versions of or-patterns. + /// The `rust_2021_incompatible_or_patterns` lint detects usage of old versions of or-patterns. /// /// ### Example /// /// ```rust,compile_fail - /// #![deny(or_patterns_back_compat)] + /// #![deny(rust_2021_incompatible_or_patterns)] /// macro_rules! match_any { /// ( $expr:expr , $( $( $pat:pat )|+ => $expr_arm:expr ),+ ) => { /// match $expr { @@ -3211,7 +3211,7 @@ /// ### Explanation /// /// In Rust 2021, the pat matcher will match new patterns, which include the | character. - pub OR_PATTERNS_BACK_COMPAT, + pub RUST_2021_INCOMPATIBLE_OR_PATTERNS, Allow, "detects usage of old versions of or-patterns", @future_incompatible = FutureIncompatibleInfo { diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index 866cd5ec535d2c5e8af3982f9ff94abdc5eb1f95..f0f0ba2e92f4f1cb1dbf49683002d56a6d7bae3b 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -164,6 +164,7 @@ #![feature(no_niche)] // rust-lang/rust#68303 #![feature(no_coverage)] // rust-lang/rust#84605 #![deny(unsafe_op_in_unsafe_fn)] +#![allow(renamed_and_removed_lints)] #![deny(or_patterns_back_compat)] // allow using `core::` in intra-doc links diff --git a/src/test/ui/macros/macro-or-patterns-back-compat.fixed b/src/test/ui/macros/macro-or-patterns-back-compat.fixed index f5a42670fdd1c62402b243bd17eb1342ad8e452e..b0d56e9bb1ef0a5bd97923bf1b572401c1df7e38 100644 --- a/src/test/ui/macros/macro-or-patterns-back-compat.fixed +++ b/src/test/ui/macros/macro-or-patterns-back-compat.fixed @@ -1,7 +1,7 @@ // run-rustfix // aux-build:or-pattern.rs -#![deny(or_patterns_back_compat)] +#![deny(rust_2021_incompatible_or_patterns)] #![allow(unused_macros)] #[macro_use] diff --git a/src/test/ui/macros/macro-or-patterns-back-compat.rs b/src/test/ui/macros/macro-or-patterns-back-compat.rs index d6620f45f62705d371b1c9b65009a534c18aab60..9e24b5106b8bf528fbf3b5fdfdc71745a19ac4d5 100644 --- a/src/test/ui/macros/macro-or-patterns-back-compat.rs +++ b/src/test/ui/macros/macro-or-patterns-back-compat.rs @@ -1,7 +1,7 @@ // run-rustfix // aux-build:or-pattern.rs -#![deny(or_patterns_back_compat)] +#![deny(rust_2021_incompatible_or_patterns)] #![allow(unused_macros)] #[macro_use] diff --git a/src/test/ui/macros/macro-or-patterns-back-compat.stderr b/src/test/ui/macros/macro-or-patterns-back-compat.stderr index a48c926315403fb37a97c7d1efd9df94fd5f0600..eb6204fa02e69221dc89aee8af589b70bbbc1d97 100644 --- a/src/test/ui/macros/macro-or-patterns-back-compat.stderr +++ b/src/test/ui/macros/macro-or-patterns-back-compat.stderr @@ -7,8 +7,8 @@ LL | macro_rules! foo { ($x:pat | $y:pat) => {} } note: the lint level is defined here --> $DIR/macro-or-patterns-back-compat.rs:4:9 | -LL | #![deny(or_patterns_back_compat)] - | ^^^^^^^^^^^^^^^^^^^^^^^ +LL | #![deny(rust_2021_incompatible_or_patterns)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! = note: for more information, see issue #84869