AST: Tweak a concrete-nested-type-of-archetype hack slightly [4.0] #10440
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.
Description: There is a long-standing representational issue where SubstitutionMaps have a hard time dealing with associated types that are constrained to concrete types, but themselves have nested associated types. We put in a workaround in 3.1. In 4.0, I made the workaround slightly narrower so that we can test the conformance lookup logic better. Unfortunately I missed a case in 4.0 where we should have applied the workaround but didn't. This patch brings back the workaround in that specific case.
Scope of the issue: Affects an open source project in the source compatibility test suite (JSQDataSourcesKit).
Origination: Regression in 4.0.
Risk: Very low, this just performs a module-based lookup in one more case that wasn't being done before, and this should always work.
Tested: Reduced test case added.
Reviewed by: @DougGregor
Radar: rdar://problem/32773028