diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs index aff4e4a8d9825..b3e43cd799405 100644 --- a/src/libcore/intrinsics.rs +++ b/src/libcore/intrinsics.rs @@ -2004,12 +2004,6 @@ extern "rust-intrinsic" { pub fn ptr_guaranteed_ne(ptr: *const T, other: *const T) -> bool; } -#[rustc_const_unstable(feature = "variant_count", issue = "73662")] -#[cfg(bootstrap)] -pub const fn variant_count() -> usize { - 0 -} - // Some functions are defined here because they accidentally got made // available in this module on stable. See . // (`transmute` also falls into this category, but it cannot be wrapped due to the diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs index 50c56434fa9a1..692d91bd61ddf 100644 --- a/src/libcore/lib.rs +++ b/src/libcore/lib.rs @@ -125,7 +125,7 @@ #![feature(unsized_locals)] #![feature(untagged_unions)] #![feature(unwind_attributes)] -#![feature(variant_count)] +#![cfg_attr(not(bootstrap), feature(variant_count))] #![feature(doc_alias)] #![feature(mmx_target_feature)] #![feature(tbm_target_feature)] diff --git a/src/libcore/mem/mod.rs b/src/libcore/mem/mod.rs index 272088815ece9..0a976a4ca00c9 100644 --- a/src/libcore/mem/mod.rs +++ b/src/libcore/mem/mod.rs @@ -1037,6 +1037,7 @@ pub const fn discriminant(v: &T) -> Discriminant { /// assert_eq!(mem::variant_count::>(), 2); /// ``` #[inline(always)] +#[cfg(not(bootstrap))] #[unstable(feature = "variant_count", issue = "73662")] #[rustc_const_unstable(feature = "variant_count", issue = "73662")] pub const fn variant_count() -> usize {