diff --git a/library/core/src/cmp.rs b/library/core/src/cmp.rs index b66a6409b9c..ddc9f7b8cba 100644 --- a/library/core/src/cmp.rs +++ b/library/core/src/cmp.rs @@ -356,6 +356,7 @@ impl Ordering { /// ``` #[inline] #[must_use] + #[rustc_const_unstable(feature = "const_ordering", issue = "76113")] #[stable(feature = "rust1", since = "1.0.0")] pub const fn reverse(self) -> Ordering { match self { @@ -394,6 +395,7 @@ impl Ordering { /// ``` #[inline] #[must_use] + #[rustc_const_unstable(feature = "const_ordering", issue = "76113")] #[stable(feature = "ordering_chaining", since = "1.17.0")] pub const fn then(self, other: Ordering) -> Ordering { match self { diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs index fcf5454308b..745c46e0868 100644 --- a/library/core/src/lib.rs +++ b/library/core/src/lib.rs @@ -86,6 +86,7 @@ #![feature(const_ptr_offset_from)] #![feature(const_raw_ptr_comparison)] #![feature(const_result)] +#![feature(const_ordering)] #![feature(const_slice_from_raw_parts)] #![feature(const_slice_ptr_len)] #![feature(const_size_of_val)] diff --git a/src/test/ui/consts/const-ordering.rs b/src/test/ui/consts/const-ordering.rs new file mode 100644 index 00000000000..9feb2b27dad --- /dev/null +++ b/src/test/ui/consts/const-ordering.rs @@ -0,0 +1,17 @@ +// run-pass + +#![feature(const_ordering)] + +use std::cmp::Ordering; + +// the following methods of core::cmp::Ordering are const: +// - reverse +// - then + +fn main() { + const REVERSE : Ordering = Ordering::Greater.reverse(); + assert_eq!(REVERSE, Ordering::Less); + + const THEN : Ordering = Ordering::Equal.then(REVERSE); + assert_eq!(THEN, Ordering::Less); +}