-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[NCGenerics] Serialization for noncopyable generic types. #70180
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
Conversation
@swift-ci please test |
swiftlang/llvm-project#7842 |
5eed9d8
to
f9f80fa
Compare
@swift-ci smoke test |
c9c3b3f
to
8712f11
Compare
@swift-ci smoke test |
8712f11
to
04e5c4c
Compare
@swift-ci smoke test |
04e5c4c
to
6f9a641
Compare
@swift-ci please smoke test |
@@ -6920,11 +6920,16 @@ DESERIALIZE_TYPE(GENERIC_TYPE_PARAM_TYPE)( | |||
|
|||
Expected<Type> DESERIALIZE_TYPE(PROTOCOL_COMPOSITION_TYPE)( | |||
ModuleFile &MF, SmallVectorImpl<uint64_t> &scratch, StringRef blobData) { | |||
bool hasExplicitAnyObject; | |||
bool hasExplicitAnyObject, hasInverseCopyable, hasInverseEscapable; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should have an OptionSet for PCT flags at this point
6f9a641
to
6f79d24
Compare
@swift-ci please smoke test |
@swift-ci please smoke test macOS platform |
6f79d24
to
027718b
Compare
@swift-ci please smoke test |
resolves rdar://118947007
We can't simply emit the desugared, expanded version of the requirements because there's no way to pretty-print the type `some ~Copyable` when the `~Copyable`'s get replaced with the absence of `Copyable`. We'd be left with just `some _` or need to invent a new top type so we can write `some Top`. Thus, it's best to simply reverse the expansion of default requirements when emitting a swiftinterface file.
027718b
to
bd13307
Compare
@swift-ci please smoke test |
@swift-ci please smoke test linux platform |
1 similar comment
@swift-ci please smoke test linux platform |
This PR covers serialization and deserialization of ~Copyable types when NoncopyableGenerics is enabled. This means that you can now write:
and emit Swift module containing that type, to be imported by another module.
resolves rdar://118947007&119531975