[5.9] Remove a couple of over-eager assertions. #65190
Merged
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.
Explanation: The best substitutions we can easily find in nested functions for captured local variables are the forwarding substitutions of the current environment. These should be fine for type-substitution purposes but do not necessarily match the generic signature of the original variable's environment, which can trip these assertions. Unfortunately, I can't think of an easy way to weaken these assertions sufficiently to cover this case.
This should fix the source-compat suite regression reported in rdar://107642925. 5.9 version of #65177.
Scope: When assertions are enabled, code that uses a captured local variable from a generic local function can fail an assertion. This showed up in the source compat suite
Issue: rdar://107642925, resolves #65200, resolves #65083.
Risk: Very low. Patch just removes the affected assertions
Testing: Added a regression test reduced from a file in the source compat suite