Const stabilize mem::discriminant
This commit is contained in:
@@ -2277,7 +2277,7 @@ extern "rust-intrinsic" {
|
|||||||
/// any safety invariants.
|
/// any safety invariants.
|
||||||
///
|
///
|
||||||
/// The stabilized version of this intrinsic is [`core::mem::discriminant`].
|
/// The stabilized version of this intrinsic is [`core::mem::discriminant`].
|
||||||
#[rustc_const_unstable(feature = "const_discriminant", issue = "69821")]
|
#[rustc_const_stable(feature = "const_discriminant", since = "CURRENT_RUSTC_VERSION")]
|
||||||
#[rustc_safe_intrinsic]
|
#[rustc_safe_intrinsic]
|
||||||
#[rustc_nounwind]
|
#[rustc_nounwind]
|
||||||
pub fn discriminant_value<T>(v: &T) -> <T as DiscriminantKind>::Discriminant;
|
pub fn discriminant_value<T>(v: &T) -> <T as DiscriminantKind>::Discriminant;
|
||||||
|
|||||||
@@ -126,7 +126,6 @@
|
|||||||
#![feature(const_caller_location)]
|
#![feature(const_caller_location)]
|
||||||
#![feature(const_cell_into_inner)]
|
#![feature(const_cell_into_inner)]
|
||||||
#![feature(const_char_from_u32_unchecked)]
|
#![feature(const_char_from_u32_unchecked)]
|
||||||
#![feature(const_discriminant)]
|
|
||||||
#![feature(const_eval_select)]
|
#![feature(const_eval_select)]
|
||||||
#![feature(const_exact_div)]
|
#![feature(const_exact_div)]
|
||||||
#![feature(const_float_bits_conv)]
|
#![feature(const_float_bits_conv)]
|
||||||
|
|||||||
@@ -1202,7 +1202,7 @@ impl<T> fmt::Debug for Discriminant<T> {
|
|||||||
/// // assert_eq!(0, unsafe { std::mem::transmute::<_, u8>(std::mem::discriminant(&unit_like)) });
|
/// // assert_eq!(0, unsafe { std::mem::transmute::<_, u8>(std::mem::discriminant(&unit_like)) });
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "discriminant_value", since = "1.21.0")]
|
#[stable(feature = "discriminant_value", since = "1.21.0")]
|
||||||
#[rustc_const_unstable(feature = "const_discriminant", issue = "69821")]
|
#[rustc_const_stable(feature = "const_discriminant", since = "CURRENT_RUSTC_VERSION")]
|
||||||
#[cfg_attr(not(test), rustc_diagnostic_item = "mem_discriminant")]
|
#[cfg_attr(not(test), rustc_diagnostic_item = "mem_discriminant")]
|
||||||
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
|
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
|
||||||
pub const fn discriminant<T>(v: &T) -> Discriminant<T> {
|
pub const fn discriminant<T>(v: &T) -> Discriminant<T> {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
// Strip out raw byte dumps to make comparison platform-independent:
|
// Strip out raw byte dumps to make comparison platform-independent:
|
||||||
// normalize-stderr-test "(the raw bytes of the constant) \(size: [0-9]*, align: [0-9]*\)" -> "$1 (size: $$SIZE, align: $$ALIGN)"
|
// normalize-stderr-test "(the raw bytes of the constant) \(size: [0-9]*, align: [0-9]*\)" -> "$1 (size: $$SIZE, align: $$ALIGN)"
|
||||||
// normalize-stderr-test "([0-9a-f][0-9a-f] |╾─*a(lloc)?[0-9]+(\+[a-z0-9]+)?─*╼ )+ *│.*" -> "HEX_DUMP"
|
// normalize-stderr-test "([0-9a-f][0-9a-f] |╾─*a(lloc)?[0-9]+(\+[a-z0-9]+)?─*╼ )+ *│.*" -> "HEX_DUMP"
|
||||||
#![feature(never_type, const_discriminant)]
|
#![feature(never_type)]
|
||||||
#![allow(invalid_value)]
|
#![allow(invalid_value)]
|
||||||
|
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
// run-pass
|
// run-pass
|
||||||
#![feature(const_discriminant)]
|
|
||||||
#![allow(dead_code)]
|
#![allow(dead_code)]
|
||||||
|
|
||||||
use std::mem::{discriminant, Discriminant};
|
use std::mem::{discriminant, Discriminant};
|
||||||
|
|||||||
Reference in New Issue
Block a user