[ConstraintSystem] Fix non-determinism in diagnoseAmbiguity
#39751
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.
Simplification of member locator would produce a base expression,
this is what we want for diagnostics but not for comparisons in
diagnoseAmbiguity
because base expression is located at a differentdepth which would lead to incorrect results if both reference and base
expression are ambiguous e.g.
test[x].count
if both[x]
andcount
are ambiguous than simplification of
count
would produce[x]
whichis incorrect.
This is the test-case (already in the suite) that exibits this behavior:
Here subscript would either return a tuple or
ArraySlice
andcount
is ambiguous because both have it.