diff --git a/compiler/rustc_const_eval/src/lib.rs b/compiler/rustc_const_eval/src/lib.rs index d6c36ccc5ec8b..10bfccf728673 100644 --- a/compiler/rustc_const_eval/src/lib.rs +++ b/compiler/rustc_const_eval/src/lib.rs @@ -8,7 +8,6 @@ Rust MIR: a lowered representation of Rust. #![feature(rustdoc_internals)] #![doc(rust_logo)] #![deny(rustc::untranslatable_diagnostic)] -#![feature(assert_matches)] #![feature(box_patterns)] #![feature(decl_macro)] #![feature(exact_size_is_empty)] diff --git a/compiler/rustc_middle/src/lib.rs b/compiler/rustc_middle/src/lib.rs index 3475e582a8f22..66cd7914f5821 100644 --- a/compiler/rustc_middle/src/lib.rs +++ b/compiler/rustc_middle/src/lib.rs @@ -27,7 +27,6 @@ #![feature(rustdoc_internals)] #![feature(allocator_api)] #![feature(array_windows)] -#![feature(assert_matches)] #![feature(box_patterns)] #![feature(core_intrinsics)] #![feature(discriminant_kind)] diff --git a/compiler/rustc_mir_build/src/lib.rs b/compiler/rustc_mir_build/src/lib.rs index 430c4ee3da780..3b6e431f04dc0 100644 --- a/compiler/rustc_mir_build/src/lib.rs +++ b/compiler/rustc_mir_build/src/lib.rs @@ -1,7 +1,6 @@ //! Construction of MIR from HIR. //! //! This crate also contains the match exhaustiveness and usefulness checking. -#![feature(assert_matches)] #![feature(associated_type_bounds)] #![feature(box_patterns)] #![feature(if_let_guard)] diff --git a/compiler/rustc_mir_transform/src/lib.rs b/compiler/rustc_mir_transform/src/lib.rs index 19bfed4333c03..4be572fee9ea9 100644 --- a/compiler/rustc_mir_transform/src/lib.rs +++ b/compiler/rustc_mir_transform/src/lib.rs @@ -1,6 +1,5 @@ #![deny(rustc::untranslatable_diagnostic)] #![deny(rustc::diagnostic_outside_of_impl)] -#![feature(assert_matches)] #![feature(box_patterns)] #![feature(cow_is_borrowed)] #![feature(decl_macro)] diff --git a/compiler/rustc_query_system/src/lib.rs b/compiler/rustc_query_system/src/lib.rs index 9b66b9a48d905..aff43050d3d8e 100644 --- a/compiler/rustc_query_system/src/lib.rs +++ b/compiler/rustc_query_system/src/lib.rs @@ -1,4 +1,3 @@ -#![feature(assert_matches)] #![feature(core_intrinsics)] #![feature(hash_raw_entry)] #![feature(min_specialization)] diff --git a/compiler/rustc_resolve/src/lib.rs b/compiler/rustc_resolve/src/lib.rs index 341c566d97fc1..11263f81cb082 100644 --- a/compiler/rustc_resolve/src/lib.rs +++ b/compiler/rustc_resolve/src/lib.rs @@ -9,7 +9,6 @@ #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(rust_logo)] #![feature(rustdoc_internals)] -#![feature(assert_matches)] #![feature(box_patterns)] #![feature(extract_if)] #![feature(if_let_guard)] diff --git a/compiler/rustc_target/src/lib.rs b/compiler/rustc_target/src/lib.rs index 257c6777996fc..f7a13e179e573 100644 --- a/compiler/rustc_target/src/lib.rs +++ b/compiler/rustc_target/src/lib.rs @@ -10,7 +10,6 @@ #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![doc(rust_logo)] #![feature(rustdoc_internals)] -#![feature(assert_matches)] #![feature(associated_type_bounds)] #![feature(exhaustive_patterns)] #![feature(iter_intersperse)] diff --git a/compiler/rustc_ty_utils/src/lib.rs b/compiler/rustc_ty_utils/src/lib.rs index fa1f94e8b41e8..5a8cdcc81a986 100644 --- a/compiler/rustc_ty_utils/src/lib.rs +++ b/compiler/rustc_ty_utils/src/lib.rs @@ -8,7 +8,6 @@ #![doc(rust_logo)] #![feature(rustdoc_internals)] #![allow(internal_features)] -#![feature(assert_matches)] #![feature(associated_type_defaults)] #![feature(box_patterns)] #![feature(if_let_guard)] diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs index 78629b39d34b1..0b47974a4cd57 100644 --- a/library/alloc/src/lib.rs +++ b/library/alloc/src/lib.rs @@ -106,7 +106,6 @@ #![feature(array_methods)] #![feature(array_windows)] #![feature(ascii_char)] -#![feature(assert_matches)] #![feature(async_iterator)] #![feature(coerce_unsized)] #![feature(const_align_of_val)] diff --git a/library/alloc/tests/lib.rs b/library/alloc/tests/lib.rs index 2dcfc6b4abfe9..175518e6068af 100644 --- a/library/alloc/tests/lib.rs +++ b/library/alloc/tests/lib.rs @@ -1,7 +1,6 @@ #![feature(allocator_api)] #![feature(alloc_layout_extra)] #![feature(iter_array_chunks)] -#![feature(assert_matches)] #![feature(btree_extract_if)] #![feature(cow_is_borrowed)] #![feature(const_cow_is_borrowed)] diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index 81bf6f28693f1..5ef77fe5f398b 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -288,10 +288,10 @@ mod macros; // We don't export this through #[macro_export] for now, to avoid breakage. // See https://github.com/rust-lang/rust/issues/82913 #[cfg(not(test))] -#[unstable(feature = "assert_matches", issue = "82775")] -/// Unstable module containing the unstable `assert_matches` macro. +#[allow(missing_docs)] +#[stable(feature = "assert_matches", since = "CURRENT_RUSTC_VERSION")] pub mod assert_matches { - #[unstable(feature = "assert_matches", issue = "82775")] + #[stable(feature = "assert_matches", since = "CURRENT_RUSTC_VERSION")] pub use crate::macros::{assert_matches, debug_assert_matches}; } diff --git a/library/core/src/macros/mod.rs b/library/core/src/macros/mod.rs index a2437feeeb9cf..6a61de6c7d249 100644 --- a/library/core/src/macros/mod.rs +++ b/library/core/src/macros/mod.rs @@ -126,8 +126,6 @@ macro_rules! assert_ne { /// # Examples /// /// ``` -/// #![feature(assert_matches)] -/// /// use std::assert_matches::assert_matches; /// /// let a = 1u32.checked_add(2); @@ -138,7 +136,7 @@ macro_rules! assert_ne { /// let c = Ok("abc".to_string()); /// assert_matches!(c, Ok(x) | Err(x) if x.len() < 100); /// ``` -#[unstable(feature = "assert_matches", issue = "82775")] +#[stable(feature = "assert_matches", since = "CURRENT_RUSTC_VERSION")] #[allow_internal_unstable(panic_internals)] #[rustc_macro_transparency = "semitransparent"] pub macro assert_matches { @@ -388,8 +386,6 @@ macro_rules! debug_assert_ne { /// # Examples /// /// ``` -/// #![feature(assert_matches)] -/// /// use std::assert_matches::debug_assert_matches; /// /// let a = 1u32.checked_add(2); @@ -400,7 +396,7 @@ macro_rules! debug_assert_ne { /// let c = Ok("abc".to_string()); /// debug_assert_matches!(c, Ok(x) | Err(x) if x.len() < 100); /// ``` -#[unstable(feature = "assert_matches", issue = "82775")] +#[stable(feature = "assert_matches", since = "CURRENT_RUSTC_VERSION")] #[allow_internal_unstable(assert_matches)] #[rustc_macro_transparency = "semitransparent"] pub macro debug_assert_matches($($arg:tt)*) { @@ -414,6 +410,8 @@ pub macro debug_assert_matches($($arg:tt)*) { /// Like in a `match` expression, the pattern can be optionally followed by `if` /// and a guard expression that has access to names bound by the pattern. /// +/// Use [`assert_matches`] to assert if an expression matches the given patterns. +/// /// # Examples /// /// ``` diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index 568645ddf7311..7cbe6bd05d50f 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -365,7 +365,6 @@ // // Only for re-exporting: // tidy-alphabetical-start -#![feature(assert_matches)] #![feature(async_iterator)] #![feature(c_variadic)] #![feature(cfg_accessible)] diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index d962beda4beed..3eaff35b86f95 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -4,7 +4,6 @@ )] #![feature(rustc_private)] #![feature(array_methods)] -#![feature(assert_matches)] #![feature(box_patterns)] #![feature(if_let_guard)] #![feature(impl_trait_in_assoc_type)] diff --git a/src/tools/clippy/clippy_utils/src/lib.rs b/src/tools/clippy/clippy_utils/src/lib.rs index d264e46f13320..3a3003446efa2 100644 --- a/src/tools/clippy/clippy_utils/src/lib.rs +++ b/src/tools/clippy/clippy_utils/src/lib.rs @@ -5,7 +5,6 @@ #![feature(lint_reasons)] #![feature(never_type)] #![feature(rustc_private)] -#![feature(assert_matches)] #![recursion_limit = "512"] #![cfg_attr(feature = "deny-warnings", deny(warnings))] #![allow(clippy::missing_errors_doc, clippy::missing_panics_doc, clippy::must_use_candidate)] diff --git a/tests/ui-fulldeps/stable-mir/check_abi.rs b/tests/ui-fulldeps/stable-mir/check_abi.rs index 7d7469597afc2..138b6f3e5dccf 100644 --- a/tests/ui-fulldeps/stable-mir/check_abi.rs +++ b/tests/ui-fulldeps/stable-mir/check_abi.rs @@ -7,7 +7,6 @@ // ignore-windows-gnu mingw has troubles with linking https://github.com/rust-lang/rust/pull/116837 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #![feature(ascii_char, ascii_char_variants)] diff --git a/tests/ui-fulldeps/stable-mir/check_allocation.rs b/tests/ui-fulldeps/stable-mir/check_allocation.rs index fb5e13eb13b10..2696b4e753954 100644 --- a/tests/ui-fulldeps/stable-mir/check_allocation.rs +++ b/tests/ui-fulldeps/stable-mir/check_allocation.rs @@ -9,7 +9,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #![feature(ascii_char, ascii_char_variants)] diff --git a/tests/ui-fulldeps/stable-mir/check_defs.rs b/tests/ui-fulldeps/stable-mir/check_defs.rs index 4a124adb2b605..31f9962390d17 100644 --- a/tests/ui-fulldeps/stable-mir/check_defs.rs +++ b/tests/ui-fulldeps/stable-mir/check_defs.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #[macro_use] diff --git a/tests/ui-fulldeps/stable-mir/check_instance.rs b/tests/ui-fulldeps/stable-mir/check_instance.rs index 1e039e5ae514c..a4600beaae714 100644 --- a/tests/ui-fulldeps/stable-mir/check_instance.rs +++ b/tests/ui-fulldeps/stable-mir/check_instance.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #[macro_use] diff --git a/tests/ui-fulldeps/stable-mir/check_item_kind.rs b/tests/ui-fulldeps/stable-mir/check_item_kind.rs index 0a7f00029f2ac..d31c14e4739b4 100644 --- a/tests/ui-fulldeps/stable-mir/check_item_kind.rs +++ b/tests/ui-fulldeps/stable-mir/check_item_kind.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #[macro_use] diff --git a/tests/ui-fulldeps/stable-mir/check_trait_queries.rs b/tests/ui-fulldeps/stable-mir/check_trait_queries.rs index c9fbe15ffb03f..b129f84800413 100644 --- a/tests/ui-fulldeps/stable-mir/check_trait_queries.rs +++ b/tests/ui-fulldeps/stable-mir/check_trait_queries.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #[macro_use] diff --git a/tests/ui-fulldeps/stable-mir/check_ty_fold.rs b/tests/ui-fulldeps/stable-mir/check_ty_fold.rs index 14cbf9e9f81f1..7790be00cd5ef 100644 --- a/tests/ui-fulldeps/stable-mir/check_ty_fold.rs +++ b/tests/ui-fulldeps/stable-mir/check_ty_fold.rs @@ -9,7 +9,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #[macro_use] diff --git a/tests/ui-fulldeps/stable-mir/compilation-result.rs b/tests/ui-fulldeps/stable-mir/compilation-result.rs index e6dd9fa132d83..4f7d06d307de2 100644 --- a/tests/ui-fulldeps/stable-mir/compilation-result.rs +++ b/tests/ui-fulldeps/stable-mir/compilation-result.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #[macro_use] extern crate rustc_smir; diff --git a/tests/ui-fulldeps/stable-mir/crate-info.rs b/tests/ui-fulldeps/stable-mir/crate-info.rs index 8258883436f2f..c383c542a3cbe 100644 --- a/tests/ui-fulldeps/stable-mir/crate-info.rs +++ b/tests/ui-fulldeps/stable-mir/crate-info.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] extern crate rustc_hir; diff --git a/tests/ui-fulldeps/stable-mir/projections.rs b/tests/ui-fulldeps/stable-mir/projections.rs index 40f2d901a2b23..1787d4183906e 100644 --- a/tests/ui-fulldeps/stable-mir/projections.rs +++ b/tests/ui-fulldeps/stable-mir/projections.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] extern crate rustc_hir; diff --git a/tests/ui-fulldeps/stable-mir/smir_internal.rs b/tests/ui-fulldeps/stable-mir/smir_internal.rs index b4faaeb4fc06d..f92bebd6112f5 100644 --- a/tests/ui-fulldeps/stable-mir/smir_internal.rs +++ b/tests/ui-fulldeps/stable-mir/smir_internal.rs @@ -9,7 +9,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #[macro_use] diff --git a/tests/ui-fulldeps/stable-mir/smir_visitor.rs b/tests/ui-fulldeps/stable-mir/smir_visitor.rs index d7739770b706a..ca923ac9b9fb8 100644 --- a/tests/ui-fulldeps/stable-mir/smir_visitor.rs +++ b/tests/ui-fulldeps/stable-mir/smir_visitor.rs @@ -8,7 +8,6 @@ // edition: 2021 #![feature(rustc_private)] -#![feature(assert_matches)] #![feature(control_flow_enum)] #[macro_use] diff --git a/tests/ui/coroutine/uninhabited-field.rs b/tests/ui/coroutine/uninhabited-field.rs index d9570c2fed8d4..30554ca9c3e3a 100644 --- a/tests/ui/coroutine/uninhabited-field.rs +++ b/tests/ui/coroutine/uninhabited-field.rs @@ -1,7 +1,6 @@ // Test that uninhabited saved local doesn't make the entire variant uninhabited. // run-pass #![allow(unused)] -#![feature(assert_matches)] #![feature(coroutine_trait)] #![feature(coroutines)] #![feature(never_type)] diff --git a/tests/ui/macros/assert-matches-macro-msg.rs b/tests/ui/macros/assert-matches-macro-msg.rs index 7af6a0778433a..c5799c8e4d202 100644 --- a/tests/ui/macros/assert-matches-macro-msg.rs +++ b/tests/ui/macros/assert-matches-macro-msg.rs @@ -4,8 +4,6 @@ // error-pattern: right: 3 // ignore-emscripten no processes -#![feature(assert_matches)] - use std::assert_matches::assert_matches; fn main() { diff --git a/tests/ui/stdlib-unit-tests/matches2021.rs b/tests/ui/stdlib-unit-tests/matches2021.rs index 9143a8cdd59bc..ccbfabc4baf78 100644 --- a/tests/ui/stdlib-unit-tests/matches2021.rs +++ b/tests/ui/stdlib-unit-tests/matches2021.rs @@ -3,8 +3,6 @@ // regression test for https://github.com/rust-lang/rust/pull/85678 -#![feature(assert_matches)] - use std::assert_matches::assert_matches; fn main() {