Make identity comparison reflexive across unions or intersections of the same type #60868
+173
−1
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.
Please verify that:
Backlog
milestone (required) - No one has created an issue for this specifically, but it is a subset of a larger set of problems discussed in [Feature request]type level equal operator #27024 and can be seen as complementary to Merge trivially mergeable intersection types for identity comparison #60726main
branchhereby runtests
locally#60726 (comment) points out why some type testing libraries define equality with a definition like:
rather than just
which is that types like
{a: 1}
are not considered identical to types like{a: 1} & {a: 1}
and{a: 1} | {a: 1}
.The latter definition of
Equals
is required to enable #60726, so I've made this PR to eliminate the need for the former definition ofEquals
.