Adds S
to HashMap/HashSet impls of Contains
#33973
Merged
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.
Problem
When working on switch a HashMap to an IntMap within
shrink
, the build failed. Here's what one of the compiler errors was:Basically, the
Contains
trait wasn't matching the impl for HashMap. This is because the impl did not specify the HashMap'sS
generic, so the defaultRandomState
was used. Since IntMap uses a differentS
, this impl didn't match, and thus a fall-through to the impl onT
, which failed with the above errors.Since the HashMap/HashSet impls don't use
S
, we can widen the impls so that IntMap and IntSet work with Contains.Summary of Changes
Specify
S
in the HashMap/HashSet impls of Contains.