-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Variadic Generics] Change pack expansion types and expressions to use the repeat
syntax.
#62766
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
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
02c59b3
to
20ff52f
Compare
@swift-ci please smoke test |
3a2c00c
to
cac7fbe
Compare
@swift-ci please smoke test |
This wasn't used, and callers can instead use getExpandedPacks, which also includes TypeReprs.
archetypes from the enclosing context, the ASTVerifier can cleanup these environments in 'cleanup'.
…pack expansion expressions, and create them in the parser instead of during pre-checking in the constraint system.
pack expansion type reprs. Classic variadic parameters still use the postfix ellipsis syntax, and pack expansion types now use a prefix 'repeat' keyword.
…imental feature flag to preserve existing parser diagnostics until the feature is official.
Previously, pack expansion types of plain parameter packs whose reduced shape is another parameter pack (i.e. as a result of parallel pack expansion somewhere else in the signature) was previously incorrect. Fixing that "broke" the incorrect mangling in these tests.
…nsitive to binding order.
…zily in the constraint system.
cac7fbe
to
6e28f99
Compare
@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.
The compiler side change corresponding to swiftlang/swift-syntax#1167
We're explaining patterned pack expansion as using repetition patterns. Given a concrete pack substitution, the pattern is repeated for each element in the substituted pack. This syntax expresses this idea directly using the
repeat
keyword, andeach
contextual keywords applied to pack references:This change replaces postfix ellipsis with a prefix
repeat
keyword for pack expansion types and expressions. This also introduces a syntactic distinction between pack expansion types and classic variadic parameter types.