[FIX] Variable: Fix cases when equal variables had different hashes #4843
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.
Issue
May fix #4766 (comment) from #4766.
Description of changes
__hash__
did not follow the same logic as__eq__
.__eq__
backtracked through identities while__hash__
(kind of) made a single step.I replaced the recursion in
__eq__
with a loop. I believe the new version to be equivalent to the old one. The old one exited earlier ifcompute_value
's matched, but with the same result as the new one.__hash__
then uses the same pieces of data as__eq__
.Includes