ABI: unify suppressed associated types mangling#87518
Open
kavon wants to merge 1 commit into
Open
Conversation
Member
Author
|
@swift-ci test |
Member
Author
|
@swift-ci smoke test windows |
Member
Author
|
@swift-ci test |
The legacy, experimental SuppressedAssociatedTypes feature never mangled any inverses into generic signatures of functions, nor mentioned them in interfaces at all. In the new version of the feature that's been officially accepted as SE-503, we now _do_ default primary associated types to be Copyable & Escapable when they're suppressed. And we do mention the suppressions in the interfaces as needed. Rather than having the compiler mangle functions in two different ways, this patch has the compiler be consistent about its mangling and interfaces, regardless of which feature you're using. This should mean that a future upgrade from the legacy feature to the new one won't create an ABI break, only a source break (as expected). So, an ABI change now before more people use the wrong experimental feature will make it easier to migrate to the officially-accepted version later on. rdar://170669869
1a3ed48 to
387546b
Compare
Member
Author
|
@swift-ci test |
Member
Author
|
@swift-ci test macOS |
Member
Author
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
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 legacy, experimental SuppressedAssociatedTypes feature never
mangled any inverses into generic signatures of functions, nor mentioned
them in interfaces at all. In the new version of the feature that's been
officially accepted as SE-503, we now do default primary associated
types to be Copyable & Escapable when they're suppressed. And we do mention
the suppressions in the interfaces as needed.
Rather than having the compiler mangle functions in two different ways,
this patch has the compiler be consistent about its mangling and interfaces,
regardless of which feature you're using.
This should mean that a future upgrade from the legacy feature to the
new one won't create an ABI break, only a source break (as expected).
So, an ABI change now before more people use the wrong experimental feature
will make it easier to migrate to the officially-accepted version later on.
rdar://170669869