-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[GenericEnvironment] Include original parameter packs in opened pack element signatures. #62228
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
hborla
merged 7 commits into
swiftlang:main
from
hborla:pack-element-generic-environment
Nov 28, 2022
Merged
[GenericEnvironment] Include original parameter packs in opened pack element signatures. #62228
hborla
merged 7 commits into
swiftlang:main
from
hborla:pack-element-generic-environment
Nov 28, 2022
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…te clone of the outer context signature, with an additional set of element type parameters at depth + 1.
…arameters of an opened pack element generic environment.
e4982ca
to
8ec5405
Compare
…element archetypes to their originating pack archetypes.
3273be7
to
8db8b7c
Compare
…res in getOrCreateArchetypeFromInterfaceType. Instead of special casing parameter packs for primary generic environments, handle parameter packs in each kind of environment. For opened element environments, a pack archetype can be produced from the outer substitutions.
fd97dac
to
bdab953
Compare
…cs for same-type requirements where one side is a parameter pack.
slavapestov
reviewed
Nov 23, 2022
generating constraints for PackExpansionExpr. The result pattern type of a pack expansion doesn't always contain pack references. Instead, use the type of the first pack reference binding.
opened pack element environments.
@swift-ci please smoke test |
1 similar comment
@swift-ci please smoke test |
@swift-ci please smoke test macOS |
@swift-ci please smoke test |
1 similar comment
@swift-ci please smoke test |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Model opened pack element signatures as a complete clone of the outer context signature, with an additional set of element type parameters at depth + 1 and corresponding element requirements. The generic environment stores a substitution map for all generic parameters whose depth is lower than the element depth, using the archetypes from the outer generic context when mapping types into this generic context.
For example, given this generic signature:
The opened element generic signature is:
where
T_1_0
represents an element inT_0_0
. The element generic environment also stores substitutions forT_0_0
andT_0_1
to the archetypes created in the generic context of the original signature.