Skip to content

Commit 06f9d37

Browse files
committed
Auto merge of rust-lang#116240 - dtolnay:constdiscriminant, r=thomcc
Const stabilize mem::discriminant Tracking issue: rust-lang#69821. This PR is a rebase of rust-lang#103893 to resolve conflicts in library/core/src/lib.rs (against rust-lang#102470 and rust-lang#110393).
2 parents 6a66ca2 + fd207e6 commit 06f9d37

File tree

5 files changed

+3
-5
lines changed

5 files changed

+3
-5
lines changed

library/core/src/intrinsics.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2279,7 +2279,7 @@ extern "rust-intrinsic" {
22792279
/// any safety invariants.
22802280
///
22812281
/// The stabilized version of this intrinsic is [`core::mem::discriminant`].
2282-
#[rustc_const_unstable(feature = "const_discriminant", issue = "69821")]
2282+
#[rustc_const_stable(feature = "const_discriminant", since = "CURRENT_RUSTC_VERSION")]
22832283
#[rustc_safe_intrinsic]
22842284
#[rustc_nounwind]
22852285
pub fn discriminant_value<T>(v: &T) -> <T as DiscriminantKind>::Discriminant;

library/core/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@
125125
#![feature(const_caller_location)]
126126
#![feature(const_cell_into_inner)]
127127
#![feature(const_char_from_u32_unchecked)]
128-
#![feature(const_discriminant)]
129128
#![feature(const_eval_select)]
130129
#![feature(const_exact_div)]
131130
#![feature(const_float_bits_conv)]

library/core/src/mem/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1206,7 +1206,7 @@ impl<T> fmt::Debug for Discriminant<T> {
12061206
/// // assert_eq!(0, unsafe { std::mem::transmute::<_, u8>(std::mem::discriminant(&unit_like)) });
12071207
/// ```
12081208
#[stable(feature = "discriminant_value", since = "1.21.0")]
1209-
#[rustc_const_unstable(feature = "const_discriminant", issue = "69821")]
1209+
#[rustc_const_stable(feature = "const_discriminant", since = "CURRENT_RUSTC_VERSION")]
12101210
#[cfg_attr(not(test), rustc_diagnostic_item = "mem_discriminant")]
12111211
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
12121212
pub const fn discriminant<T>(v: &T) -> Discriminant<T> {

tests/ui/consts/const-eval/ub-enum.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Strip out raw byte dumps to make comparison platform-independent:
33
// normalize-stderr-test "(the raw bytes of the constant) \(size: [0-9]*, align: [0-9]*\)" -> "$1 (size: $$SIZE, align: $$ALIGN)"
44
// normalize-stderr-test "([0-9a-f][0-9a-f] |╾─*a(lloc)?[0-9]+(\+[a-z0-9]+)?─*╼ )+ *│.*" -> "HEX_DUMP"
5-
#![feature(never_type, const_discriminant)]
5+
#![feature(never_type)]
66
#![allow(invalid_value)]
77

88
use std::mem;

tests/ui/consts/const_discriminant.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// run-pass
2-
#![feature(const_discriminant)]
32
#![allow(dead_code)]
43

54
use std::mem::{discriminant, Discriminant};

0 commit comments

Comments
 (0)