File tree 4 files changed +6
-4
lines changed
4 files changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -1914,7 +1914,7 @@ extern "rust-intrinsic" {
1914
1914
///
1915
1915
/// The stabilized version of this intrinsic is
1916
1916
/// [`std::mem::discriminant`](../../std/mem/fn.discriminant.html)
1917
- #[ rustc_const_unstable ( feature = "const_discriminant" , issue = "69821 " ) ]
1917
+ #[ rustc_const_stable ( feature = "const_discriminant" , since = "1.46.0 " ) ]
1918
1918
pub fn discriminant_value < T > ( v : & T ) -> <T as DiscriminantKind >:: Discriminant ;
1919
1919
1920
1920
/// Rust's "try catch" construct which invokes the function pointer `try_fn`
Original file line number Diff line number Diff line change 72
72
#![ feature( concat_idents) ]
73
73
#![ feature( const_ascii_ctype_on_intrinsics) ]
74
74
#![ feature( const_alloc_layout) ]
75
- #![ feature( const_discriminant) ]
76
75
#![ feature( const_if_match) ]
77
76
#![ feature( const_loop) ]
78
77
#![ feature( const_checked_int_methods) ]
Original file line number Diff line number Diff line change @@ -993,7 +993,7 @@ impl<T> fmt::Debug for Discriminant<T> {
993
993
/// assert_ne!(mem::discriminant(&Foo::B(3)), mem::discriminant(&Foo::C(3)));
994
994
/// ```
995
995
#[ stable( feature = "discriminant_value" , since = "1.21.0" ) ]
996
- #[ rustc_const_unstable ( feature = "const_discriminant" , issue = "69821 " ) ]
996
+ #[ rustc_const_stable ( feature = "const_discriminant" , since = "1.46.0 " ) ]
997
997
pub const fn discriminant < T > ( v : & T ) -> Discriminant < T > {
998
998
Discriminant ( intrinsics:: discriminant_value ( v) )
999
999
}
Original file line number Diff line number Diff line change 1
1
// run-pass
2
- #![ feature( const_discriminant) ]
3
2
#![ allow( dead_code) ]
4
3
5
4
use std:: mem:: { discriminant, Discriminant } ;
@@ -20,6 +19,8 @@ const TEST_A: Discriminant<Test> = discriminant(&Test::A(5));
20
19
const TEST_A_OTHER : Discriminant < Test > = discriminant ( & Test :: A ( 17 ) ) ;
21
20
const TEST_B : Discriminant < Test > = discriminant ( & Test :: B ) ;
22
21
22
+ const TEST_TRIVIAL : Discriminant < u32 > = discriminant ( & 42 ) ;
23
+
23
24
enum Void { }
24
25
25
26
enum SingleVariant {
@@ -37,4 +38,6 @@ fn main() {
37
38
assert_ne ! ( TEST_B , discriminant( identity( & Test :: C { a: 42 , b: 7 } ) ) ) ;
38
39
39
40
assert_eq ! ( TEST_V , discriminant( identity( & SingleVariant :: V ) ) ) ;
41
+
42
+ assert_eq ! ( TEST_TRIVIAL , discriminant( identity( & 42 ) ) ) ;
40
43
}
You can’t perform that action at this time.
0 commit comments