Skip to content

Commit 0006d3e

Browse files
committed
Auto merge of #44263 - durka:stabilize-discriminant, r=dtolnay
stabilize mem::discriminant (closes #24263)
2 parents 981ce7d + d516434 commit 0006d3e

File tree

5 files changed

+8
-15
lines changed

5 files changed

+8
-15
lines changed

src/libcore/mem.rs

+8-9
Original file line numberDiff line numberDiff line change
@@ -711,39 +711,39 @@ pub unsafe fn transmute_copy<T, U>(src: &T) -> U {
711711
/// Opaque type representing the discriminant of an enum.
712712
///
713713
/// See the `discriminant` function in this module for more information.
714-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
714+
#[stable(feature = "discriminant_value", since = "1.22.0")]
715715
pub struct Discriminant<T>(u64, PhantomData<*const T>);
716716

717717
// N.B. These trait implementations cannot be derived because we don't want any bounds on T.
718718

719-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
719+
#[stable(feature = "discriminant_value", since = "1.22.0")]
720720
impl<T> Copy for Discriminant<T> {}
721721

722-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
722+
#[stable(feature = "discriminant_value", since = "1.22.0")]
723723
impl<T> clone::Clone for Discriminant<T> {
724724
fn clone(&self) -> Self {
725725
*self
726726
}
727727
}
728728

729-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
729+
#[stable(feature = "discriminant_value", since = "1.22.0")]
730730
impl<T> cmp::PartialEq for Discriminant<T> {
731731
fn eq(&self, rhs: &Self) -> bool {
732732
self.0 == rhs.0
733733
}
734734
}
735735

736-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
736+
#[stable(feature = "discriminant_value", since = "1.22.0")]
737737
impl<T> cmp::Eq for Discriminant<T> {}
738738

739-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
739+
#[stable(feature = "discriminant_value", since = "1.22.0")]
740740
impl<T> hash::Hash for Discriminant<T> {
741741
fn hash<H: hash::Hasher>(&self, state: &mut H) {
742742
self.0.hash(state);
743743
}
744744
}
745745

746-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
746+
#[stable(feature = "discriminant_value", since = "1.22.0")]
747747
impl<T> fmt::Debug for Discriminant<T> {
748748
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
749749
fmt.debug_tuple("Discriminant")
@@ -768,7 +768,6 @@ impl<T> fmt::Debug for Discriminant<T> {
768768
/// the actual data:
769769
///
770770
/// ```
771-
/// #![feature(discriminant_value)]
772771
/// use std::mem;
773772
///
774773
/// enum Foo { A(&'static str), B(i32), C(i32) }
@@ -777,7 +776,7 @@ impl<T> fmt::Debug for Discriminant<T> {
777776
/// assert!(mem::discriminant(&Foo::B(1)) == mem::discriminant(&Foo::B(2)));
778777
/// assert!(mem::discriminant(&Foo::B(3)) != mem::discriminant(&Foo::C(3)));
779778
/// ```
780-
#[unstable(feature = "discriminant_value", reason = "recently added, follows RFC", issue = "24263")]
779+
#[stable(feature = "discriminant_value", since = "1.22.0")]
781780
pub fn discriminant<T>(v: &T) -> Discriminant<T> {
782781
unsafe {
783782
Discriminant(intrinsics::discriminant_value(v), PhantomData)

src/librustc/lib.rs

-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#![feature(conservative_impl_trait)]
2525
#![feature(const_fn)]
2626
#![feature(core_intrinsics)]
27-
#![feature(discriminant_value)]
2827
#![feature(i128_type)]
2928
#![cfg_attr(windows, feature(libc))]
3029
#![feature(never_type)]
@@ -34,7 +33,6 @@
3433
#![feature(slice_patterns)]
3534
#![feature(specialization)]
3635
#![feature(unboxed_closures)]
37-
#![feature(discriminant_value)]
3836
#![feature(trace_macros)]
3937
#![feature(test)]
4038

src/librustc_data_structures/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
#![feature(unsize)]
3030
#![feature(i128_type)]
3131
#![feature(conservative_impl_trait)]
32-
#![feature(discriminant_value)]
3332
#![feature(specialization)]
3433

3534
#![cfg_attr(unix, feature(libc))]

src/librustc_metadata/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
#![feature(quote)]
2222
#![feature(rustc_diagnostic_macros)]
2323
#![feature(specialization)]
24-
#![feature(discriminant_value)]
2524
#![feature(rustc_private)]
2625

2726
#[macro_use]

src/test/run-pass/discriminant_value-wrapper.rs

-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#![feature(discriminant_value)]
12-
1311
use std::mem;
1412

1513
enum ADT {

0 commit comments

Comments
 (0)