about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/core/src/cmp.rs2
-rw-r--r--library/core/src/lib.rs1
-rw-r--r--src/test/ui/consts/const-ordering.rs17
3 files changed, 20 insertions, 0 deletions
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);
+}