-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[6.0] Fix condfails for TypedThrows, NoncopyableGenerics, and IsolatedAny #72613
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
tshortli
merged 10 commits into
swiftlang:release/6.0
from
tshortli:ncgenerics-typedthrows-condfails-6.0
Mar 28, 2024
Merged
[6.0] Fix condfails for TypedThrows, NoncopyableGenerics, and IsolatedAny #72613
tshortli
merged 10 commits into
swiftlang:release/6.0
from
tshortli:ncgenerics-typedthrows-condfails-6.0
Mar 28, 2024
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
ede853c
to
28f52b5
Compare
@swift-ci please test |
…sion. It isn't used since the attribute doesn't get serialized.
This attribute is the inverse of the existing `@_allowFeatureSuppression` attribute. Part of rdar://125138945
Functions that are used in public `@inlinable` function bodies can't be marked `@_spi` nor can they be made obsolete. Also, they must retain `rethrows` so that use of these entry points from other `rethrows` functions is accepted. Builds on swiftlang#72365. Once we no longer have to support pre-`$TypedThrows` compilers, all of this can be reverted. Part of rdar://125138945
…erators. Associated type inference ought to take care of providing the `Failure` typealias for these `AsyncIteratorProtocol` types. However, the inferred typealias is printed with `@_implements` in the `.swiftinterface`, guarded with the `$AssociatedTypeImplements` language feature guard, which means older compilers cannot see the typealias and therefore think the conformance is incomplete. To make sure the `_Concurrency` module's interface is backward compatible, we must manually define these typealiases temporarily. Part of rdar://125138945
… feature. The `.swiftinterface` of the standard library must remain compatible with some older compilers. Unfortunately, some of those older compilers do not allow the experimental feature `NoncopyableGenerics` to be enabled in production. To allow the stdlib to build with non-copyable generics enabled and still have the older compilers consume its interface, we have to use a new experimental feature identifier that they do not know about. Partially resolves rdar://125138945
…sed. When printing declarations with `NoncopyableGenerics2` suppressed we must avoid printing the `@_preInverseGenerics` attribute and any `borrowing` or `consuming` parameter ownership modifiers.
This prevents some re-declaration errors when building the standard library from its `.swiftinterface` with older compilers.
To preserve compatibility with older compilers that do not allow `IsolatedAny` to be enabled in production compilers, use an alias experimental feature when building the stdlib (`IsolatedAny2`). Also, add `@_allowFeatureSuppression(IsolatedAny)` in a couple spots it was forgotten. Partially resolves rdar://125138945
28f52b5
to
aa43d60
Compare
@swift-ci please test |
tbkka
approved these changes
Mar 28, 2024
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.
.swiftinterface
of the standard library must remain compatible with some older compilers. Recently, the introduction of code to the stdlib using several new compiler features (typed throws, non-copyable generics, and@isolated(any)
) has broken backward compatibility. These changes repair theSwift
and_Concurrency
module.swiftinterface
s so that specific older versions of the compiler can build them..swiftinterface
printing for all modules. This must be fixed in Swift 6 to support important development workflows for users of the in-development toolchain.@_disallowFeatureSuppression
attribute #72604, AST/Frontend/stdlib: Fix condfails for NoncopyableGenerics and IsolatedAny #72608, stdlib: Make typed throws ABI placeholders properly@usableFromInline
#72612, Concurrency: Declare explicit Failure typealiases on AsyncSequence iterators #72645.swiftinterfaces
directly by compiling a simple program against them using the older compilers.