Require non-absolute trait method refs to be unambiguous #5232
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.
Currently, when writing something like
where both
T1::func()
andT2::func()
exist, we will simply assume thatfunc
refers toT1::func()
. This is surprising, and it doesn't really make sense that this particular method gets picked.This PR validates that non-absolute method references are unambiguous, i.e. refer to exactly one method. If there is ambiguity, it is required to write
T1::func as otherFunc
or similar.I think the backwards-compatibility impact here is very low. I did not find any affected code in top 2k packages.