diff options
| author | Stein Somers <git@steinsomers.be> | 2021-12-10 15:18:54 +0100 |
|---|---|---|
| committer | Stein Somers <git@steinsomers.be> | 2021-12-10 16:30:04 +0100 |
| commit | cc35a11a393c3fca47a3b80db48c39c416f20bf6 (patch) | |
| tree | a5cc1d1ed43921d5fca4353f4989cb81accd685d | |
| parent | c8bc4b7a55606ae6d7b7af7c116c8188762b0871 (diff) | |
| download | rust-cc35a11a393c3fca47a3b80db48c39c416f20bf6.tar.gz rust-cc35a11a393c3fca47a3b80db48c39c416f20bf6.zip | |
BTree: assert presence of derived functions
| -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>) { |
