RequirementMachine: Skip protocol type aliases that contain unbound dependent member types #80281
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.
In the below, 'Self.A.A' is not a type parameter; rather, since 'Self.A' is concretely known to be 'S' via a protocol type alias, we resolve it as 'S.A', which performs a name lookup and finds the concrete type alias 'A' of 'S', which is just 'Int':
This is fine, but such a type alias should not participate in the rewrite system. Let's exclude them like any other invalid requirement.
The type alias itself is not an error; however, it is an error to use it from a 'where' clause requirement. This is not diagnosed yet, though.
Fixes rdar://136686001.