Implementation of "Restrict cross-module struct initializers to be delegating" #12352
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.
Initial implementation of https://github.com/jrose-apple/swift-evolution/blob/restrict-cross-module-struct-initializers/proposals/nnnn-restrict-cross-module-struct-initializers.md, which I plan to submit for swift-evolution review soon. Slava already had most of this in place as a prototype for the restrictions on what's currently spelled
@_fixed_layout
. Tidy it up and make it apply all the time across module boundaries.This doesn't actually work yet because of the FIXMEs in the test cases; it turns out these very cases come up in the overlays. Slava's working on that separately; once that goes in I'll rebase this.
(The tweak in Serialization is because no one had tested -enable-resilience and -enable-testing at the same time. It's a backwards-compatible change, so no need to bump the module format.)
rdar://problem/34777878