[5.3][CSGen] Allow is
patterns to infer type from enclosing context
#32190
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.
Cherry-pick of #31810
Instead of assuming type of its sub-pattern
is
should be ableto infer type from context and then propagate that to the sub-pattern
via conversion. This enables support for patterns like
.foo(_ as Foo)
where
is
would have a type different from_
which gets inferredfrom associated value of
foo
and converted toFoo
that becomesa type of
_
pattern.Scope:
is
pattern used to match associated type of an enum element inif case
and other constructs.Resolves: rdar://problem/63510989
Risk: Low
Testing: Added regression tests
Reviewer: @DougGregor
Resolves: rdar://problem/63510989
(cherry picked from commit b14d965)