diff options
| author | Easyoakland <97992568+Easyoakland@users.noreply.github.com> | 2023-08-07 20:29:50 -0600 |
|---|---|---|
| committer | Easyoakland <97992568+Easyoakland@users.noreply.github.com> | 2023-08-07 20:31:49 -0600 |
| commit | 98e434a01eafce54fc862fa36f44e0392a6fb9f7 (patch) | |
| tree | 62d28cd0177e9bdb957305faa9857afec153336c | |
| parent | 443c3161dd04f4c1b656a626f9079921bee9c326 (diff) | |
| download | rust-98e434a01eafce54fc862fa36f44e0392a6fb9f7.tar.gz rust-98e434a01eafce54fc862fa36f44e0392a6fb9f7.zip | |
Increase clarity about Hash - Eq consistency in HashMap and HashSet docs
| -rw-r--r-- | library/std/src/collections/hash/map.rs | 6 | ||||
| -rw-r--r-- | library/std/src/collections/hash/set.rs | 7 |
2 files changed, 8 insertions, 5 deletions
diff --git a/library/std/src/collections/hash/map.rs b/library/std/src/collections/hash/map.rs index a083b65604d..be173a7ace6 100644 --- a/library/std/src/collections/hash/map.rs +++ b/library/std/src/collections/hash/map.rs @@ -49,12 +49,14 @@ use crate::sys; /// ``` /// /// In other words, if two keys are equal, their hashes must be equal. +/// Violating this property is a logic error. /// -/// It is a logic error for a key to be modified in such a way that the key's +/// It is also a logic error for a key to be modified in such a way that the key's /// hash, as determined by the [`Hash`] trait, or its equality, as determined by /// the [`Eq`] trait, changes while it is in the map. This is normally only /// possible through [`Cell`], [`RefCell`], global state, I/O, or unsafe code. -/// The behavior resulting from such a logic error is not specified, but will +/// +/// The behavior resulting from either logic error is not specified, but will /// be encapsulated to the `HashMap` that observed the logic error and not /// result in undefined behavior. This could include panics, incorrect results, /// aborts, memory leaks, and non-termination. diff --git a/library/std/src/collections/hash/set.rs b/library/std/src/collections/hash/set.rs index 959403e1644..6d85b26af5f 100644 --- a/library/std/src/collections/hash/set.rs +++ b/library/std/src/collections/hash/set.rs @@ -24,13 +24,14 @@ use super::map::{map_try_reserve_error, RandomState}; /// ``` /// /// In other words, if two keys are equal, their hashes must be equal. +/// Violating this property is a logic error. /// -/// -/// It is a logic error for a key to be modified in such a way that the key's +/// It is also a logic error for a key to be modified in such a way that the key's /// hash, as determined by the [`Hash`] trait, or its equality, as determined by /// the [`Eq`] trait, changes while it is in the map. This is normally only /// possible through [`Cell`], [`RefCell`], global state, I/O, or unsafe code. -/// The behavior resulting from such a logic error is not specified, but will +/// +/// The behavior resulting from either logic error is not specified, but will /// be encapsulated to the `HashSet` that observed the logic error and not /// result in undefined behavior. This could include panics, incorrect results, /// aborts, memory leaks, and non-termination. |
