diff options
| -rw-r--r-- | library/alloc/src/collections/btree/set/tests.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/library/alloc/src/collections/btree/set/tests.rs b/library/alloc/src/collections/btree/set/tests.rs index 9a5bfb3d958..7390ff5a59c 100644 --- a/library/alloc/src/collections/btree/set/tests.rs +++ b/library/alloc/src/collections/btree/set/tests.rs @@ -3,6 +3,7 @@ use super::super::testing::rng::DeterministicRng; use super::*; use crate::vec::Vec; use std::cmp::Ordering; +use std::hash::{Hash, Hasher}; use std::iter::FromIterator; use std::panic::{catch_unwind, AssertUnwindSafe}; @@ -607,6 +608,37 @@ fn assert_send() { } } +#[allow(dead_code)] +// Check that the member-like functions conditionally provided by #[derive()] +// are not overriden by genuine member functions with a different signature. +fn assert_derives() { + fn hash<T: Hash, H: Hasher>(v: BTreeSet<T>, state: &mut H) { + v.hash(state); + // Tested much more thoroughly outside the crate in btree_set_hash.rs + } + fn eq<T: PartialEq>(v: BTreeSet<T>) { + let _ = v.eq(&v); + } + fn ne<T: PartialEq>(v: BTreeSet<T>) { + let _ = v.ne(&v); + } + fn cmp<T: Ord>(v: BTreeSet<T>) { + let _ = v.cmp(&v); + } + fn min<T: Ord>(v: BTreeSet<T>, w: BTreeSet<T>) { + let _ = v.min(w); + } + fn max<T: Ord>(v: BTreeSet<T>, w: BTreeSet<T>) { + let _ = v.max(w); + } + fn clamp<T: Ord>(v: BTreeSet<T>, w: BTreeSet<T>, x: BTreeSet<T>) { + let _ = v.clamp(w, x); + } + fn partial_cmp<T: PartialOrd>(v: &BTreeSet<T>) { + let _ = v.partial_cmp(&v); + } +} + #[test] fn test_ord_absence() { fn set<K>(mut set: BTreeSet<K>) { |
