[extension types] Member conflicts ignore precluded members #3486
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.
See dart-lang/sdk#53719 (comment) for some background.
This PR adds rules to specify that a precluded member does not contribute to a conflict. This is a small adjustment to the rules which were added in #3470.
For example:
The rationale is as follows: If
E3
had hadimplements E1
thenE3
would have had the setter namedfoo=
and it would not have had the method namedfoo
, because it is precluded. Withimplements E2
,E3
would have had the setter and the getter, and there is no conflict (and no error). Hence, we might as well letE3
have the setter and the getter when it hasimplements E1, E2
, because the consistent choice is in any case thatE3
has the getter and not the method, so there is no ambiguity inE3
about the meaning offoo
.