about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDeadbeef <ent3rm4n@gmail.com>2021-07-26 14:04:55 +0800
committerDeadbeef <ent3rm4n@gmail.com>2021-08-13 09:28:51 +0000
commit7ea0280aa90256317c3b3cf8b13f47a4c5968dd0 (patch)
tree74aa07327cffb0d566190cc0cd1219e9ae4dbffa
parent869daad8fce326a4a6976cbd51964da5efacec28 (diff)
downloadrust-7ea0280aa90256317c3b3cf8b13f47a4c5968dd0.tar.gz
rust-7ea0280aa90256317c3b3cf8b13f47a4c5968dd0.zip
Moved ui test
-rw-r--r--library/alloc/src/collections/btree/map/tests.rs7
-rw-r--r--library/alloc/src/collections/btree/set/tests.rs7
-rw-r--r--library/alloc/tests/const_fns.rs53
-rw-r--r--library/alloc/tests/lib.rs3
-rw-r--r--src/test/ui/collections-const-new.rs20
5 files changed, 56 insertions, 34 deletions
diff --git a/library/alloc/src/collections/btree/map/tests.rs b/library/alloc/src/collections/btree/map/tests.rs
index 1e61692b7c6..17e53848343 100644
--- a/library/alloc/src/collections/btree/map/tests.rs
+++ b/library/alloc/src/collections/btree/map/tests.rs
@@ -1786,13 +1786,6 @@ fn test_ord_absence() {
     }
 }
 
-#[allow(dead_code)]
-fn test_const() {
-    const MAP: &'static BTreeMap<(), ()> = &BTreeMap::new();
-    const LEN: usize = MAP.len();
-    const IS_EMPTY: bool = MAP.is_empty();
-}
-
 #[test]
 fn test_occupied_entry_key() {
     let mut a = BTreeMap::new();
diff --git a/library/alloc/src/collections/btree/set/tests.rs b/library/alloc/src/collections/btree/set/tests.rs
index de7a10dca7b..5d590a26281 100644
--- a/library/alloc/src/collections/btree/set/tests.rs
+++ b/library/alloc/src/collections/btree/set/tests.rs
@@ -16,13 +16,6 @@ fn test_clone_eq() {
     assert_eq!(m.clone(), m);
 }
 
-#[allow(dead_code)]
-fn test_const() {
-    const SET: &'static BTreeSet<()> = &BTreeSet::new();
-    const LEN: usize = SET.len();
-    const IS_EMPTY: bool = SET.is_empty();
-}
-
 #[test]
 fn test_iter_min_max() {
     let mut a = BTreeSet::new();
diff --git a/library/alloc/tests/const_fns.rs b/library/alloc/tests/const_fns.rs
new file mode 100644
index 00000000000..02e8f8f4022
--- /dev/null
+++ b/library/alloc/tests/const_fns.rs
@@ -0,0 +1,53 @@
+// Test several functions can be used for constants
+// 1. Vec::new()
+// 2. String::new()
+// 3. BTreeMap::new()
+// 4. BTreeSet::new()
+
+#[allow(dead_code)]
+pub const MY_VEC: Vec<usize> = Vec::new();
+
+#[allow(dead_code)]
+pub const MY_STRING: String = String::new();
+
+// FIXME remove this struct once we put `K: ?const Ord` on BTreeMap::new.
+#[derive(PartialEq, Eq, PartialOrd)]
+pub struct MyType;
+
+impl const Ord for MyType {
+    fn cmp(&self, _: &Self) -> Ordering {
+        Ordering::Equal
+    }
+
+    fn max(self, _: Self) -> Self {
+        Self
+    }
+
+    fn min(self, _: Self) -> Self {
+        Self
+    }
+
+    fn clamp(self, _: Self, _: Self) -> Self {
+        Self
+    }
+}
+
+use core::cmp::Ordering;
+use std::collections::{BTreeMap, BTreeSet};
+
+pub const MY_BTREEMAP: BTreeMap<MyType, MyType> = BTreeMap::new();
+pub const MAP: &'static BTreeMap<MyType, MyType> = &MY_BTREEMAP;
+pub const MAP_LEN: usize = MAP.len();
+pub const MAP_IS_EMPTY: bool = MAP.is_empty();
+
+pub const MY_BTREESET: BTreeSet<MyType> = BTreeSet::new();
+pub const SET: &'static BTreeSet<MyType> = &MY_BTREESET;
+pub const SET_LEN: usize = SET.len();
+pub const SET_IS_EMPTY: bool = SET.is_empty();
+
+#[test]
+fn test_const() {
+    assert_eq!(MAP_LEN, 0);
+    assert_eq!(SET_LEN, 0);
+    assert!(MAP_IS_EMPTY && SET_IS_EMPTY)
+}
diff --git a/library/alloc/tests/lib.rs b/library/alloc/tests/lib.rs
index 8fca2662fc3..7284c05d5ff 100644
--- a/library/alloc/tests/lib.rs
+++ b/library/alloc/tests/lib.rs
@@ -23,6 +23,8 @@
 #![feature(slice_partition_dedup)]
 #![feature(vec_spare_capacity)]
 #![feature(string_remove_matches)]
+#![feature(const_btree_new)]
+#![feature(const_trait_impl)]
 
 use std::collections::hash_map::DefaultHasher;
 use std::hash::{Hash, Hasher};
@@ -32,6 +34,7 @@ mod binary_heap;
 mod borrow;
 mod boxed;
 mod btree_set_hash;
+mod const_fns;
 mod cow_str;
 mod fmt;
 mod heap;
diff --git a/src/test/ui/collections-const-new.rs b/src/test/ui/collections-const-new.rs
deleted file mode 100644
index 978f25f9a93..00000000000
--- a/src/test/ui/collections-const-new.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-// check-pass
-
-// Test several functions can be used for constants
-// 1. Vec::new()
-// 2. String::new()
-// 3. BTreeMap::new()
-// 4. BTreeSet::new()
-
-#![feature(const_btree_new)]
-
-const MY_VEC: Vec<usize> = Vec::new();
-
-const MY_STRING: String = String::new();
-
-use std::collections::{BTreeMap, BTreeSet};
-const MY_BTREEMAP: BTreeMap<u32, u32> = BTreeMap::new();
-
-const MY_BTREESET: BTreeSet<u32> = BTreeSet::new();
-
-fn main() {}