-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[6.0🍒] Use new noncopyable infrastructure #72377
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
kavon
merged 29 commits into
swiftlang:release/6.0
from
kavon:6.0-enable-noncopyable-infra
Mar 17, 2024
Merged
[6.0🍒] Use new noncopyable infrastructure #72377
kavon
merged 29 commits into
swiftlang:release/6.0
from
kavon:6.0-enable-noncopyable-infra
Mar 17, 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
(cherry picked from commit 71de500)
We don't support nested types in methods of generic types, so the new error popping up about `A` being noncopyable is not too surprising, but also not the point of this test anyway. (cherry picked from commit 8f2ed59)
(cherry picked from commit af933c6)
The infrastructure underpinning the new feature NoncopyableGenerics is mature enough to be used. (cherry picked from commit 149c052)
(cherry picked from commit 84a44f8)
(cherry picked from commit 2a51f10)
(cherry picked from commit 2d065bb)
(cherry picked from commit 341ff24)
Reabstraction thunks mangle generic signatures and are now including inverse requirements (i.e., suppressions). Since these symbols are always `shared`, they're not ABI so it's OK that they're now different, to distinguish them from thunks with signatures that lack the inverses. (cherry picked from commit 69e8263)
We are suppose to be able to query whether a type is Escapable or not at runtime, in order to handle plain extensions of conditionally-Escapable types, which are implicitly like this: ``` struct S<T: ~Escapable>: ~Escapable {} extension S: Escapable where T: Escapable {} extension S: P where T: Escapable {} // <- requires runtime information ``` While that's not yet implemented, it eventually will be once NonescapableTypes matures. (cherry picked from commit 8a13ced)
These tests of the type system are being updated because of the new presence of Copyable and Escapable conformances & conformance requirements. (cherry picked from commit 102ccbc)
(cherry picked from commit 47676b2)
The test was relying on UnsafeMutablePointer (UMP) not having a Copyable requirement. Those Copyable requirements are more prominent when using the new infrastructure for noncopyable types. Since UMP is planned to have `~Copyable` on its generic parameter quite soon, this shouldn't remain broken for too long. (cherry picked from commit 2951162)
It's not currently clear whether this is a regression or just a test that needs updating. Investigation is needed. (cherry picked from commit 9ae263c)
It's not currently clear whether this is a regression or just a test that needs updating. For now it seems harmless to just update the test rather than disable it. (cherry picked from commit d73dfe9)
(cherry picked from commit 48beac2)
(cherry picked from commit 8f97b7f)
(cherry picked from commit ae862d3)
This test is failing to verify the generic signature for this bogus program, because the generic signature isn't minimal. We should gracefully handle this situation and still have a minimal signature, despite rejecting this program. (cherry picked from commit 53fb8c3)
(cherry picked from commit bb51be7)
(cherry picked from commit 55edc30)
The presence of Copyable/Escapable conformances doesn't affect ABI. Only their absence in terms of suppressed requirements like `~Copyable` need to be output for diffing by the APIDigester. (cherry picked from commit 3b02f30)
(cherry picked from commit 11220bb)
This appears to be a code path that wasn't previously stressed when deserializing a bogus module, but now it is with NoncopyableGenerics, as Copyable is often emitted as a builtin conformance. (cherry picked from commit b40611f)
(cherry picked from commit cc709d6)
(cherry picked from commit f1b222d)
After removing the implicit conditional conformance synthesis for inverses, this test wasn't updated. (cherry picked from commit f18c7f9)
(cherry picked from commit ca25edb)
(cherry picked from commit b5840cf)
airspeedswift
approved these changes
Mar 16, 2024
xedin
approved these changes
Mar 17, 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.
cherry-pick of #72276 that just missed the creation of the 6.0 branch.
relies on friend PR swiftlang/llvm-project#8420