Skip to content

[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

Conversation

tshortli
Copy link
Contributor

@tshortli tshortli commented Mar 27, 2024

@tshortli tshortli force-pushed the ncgenerics-typedthrows-condfails-6.0 branch 2 times, most recently from ede853c to 28f52b5 Compare March 27, 2024 23:54
@tshortli
Copy link
Contributor Author

@swift-ci please test

@tshortli tshortli changed the title [6.0] Fix $NoncopyableGenerics and $TypedThrows condfails [6.0] Fix condfails for TypedThrows, NoncopyableGenerics, and IsolatedAny Mar 28, 2024
tshortli added 10 commits March 27, 2024 22:49
…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
@tshortli tshortli force-pushed the ncgenerics-typedthrows-condfails-6.0 branch from 28f52b5 to aa43d60 Compare March 28, 2024 05:53
@tshortli
Copy link
Contributor Author

@swift-ci please test

@tshortli tshortli marked this pull request as ready for review March 28, 2024 15:24
@tshortli tshortli requested a review from a team as a code owner March 28, 2024 15:24
@tshortli tshortli requested a review from nkcsgexi March 28, 2024 15:38
@tshortli tshortli enabled auto-merge March 28, 2024 15:45
@tshortli tshortli disabled auto-merge March 28, 2024 15:45
@tshortli tshortli merged commit bf71bbf into swiftlang:release/6.0 Mar 28, 2024
@tshortli tshortli deleted the ncgenerics-typedthrows-condfails-6.0 branch March 28, 2024 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants