Make sure that the hash of referenced specialize types is the same#213
Merged
tkaitchuck merged 1 commit intotkaitchuck:masterfrom Mar 1, 2024
Merged
Conversation
In general users would expect the hash of &T is the same as the hash of T. This is the case in ahash unless the "specialize" feature is used. This change is a stop gap to make sure that the hash of the specialized types is the same whether reference is used or not. Note that this change still doesn't address doubly referenced types like &&u64. But hopefully it already covers most cases.
Owner
|
I am aware of this limitation, and am planning to resolve it in a more permanent way by having the hasher rather then the method typed to the item being hashed. This is obviously a API breaking change, so it will need to be a major release. |
Owner
|
This is fine as a temporary measure, but it should probably also cover &&str and &String. |
tkaitchuck
approved these changes
Mar 1, 2024
tkaitchuck
added a commit
that referenced
this pull request
Mar 2, 2024
Signed-off-by: Tom Kaitchuck <Tom.Kaitchuck@gmail.com>
tkaitchuck
added a commit
that referenced
this pull request
Mar 3, 2024
* Make RandomState typed to the type to be hashed * Add test from #213 * All smhasher tests pass Signed-off-by: Tom Kaitchuck <Tom.Kaitchuck@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In general users would expect the hash of &T is the same as the hash of T. This is the case in ahash unless the "specialize" feature is used.
This change is a stop gap to make sure that the hash of the specialized types is the same whether reference is used or not.
Note that this change still doesn't address doubly referenced types like &&u64. But hopefully it already covers most cases.
Fixes #214