[5.9 π] Build support for ~Copyable atop @_moveOnly
#65591
Merged
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.
β’ Description: Allows people to write
~Copyablein the inheritance clause of an enum or struct to annotate that type as noncopyable. The approach in this PR is to internally annotate the type with@_moveOnly, so it side-steps any changes to the type system in favor of already-well-tested code paths that look for the attribuet.β’ Risk: Low. A
~appearing in the clause would never have parsed correctly before.Copyableis not even a valid type.β’ Original PR: #65556
β’ Reviewed By: Joe Groff
β’ Testing: regression tests included
β’ Resolves: rdar://106775103
Depends on companion PR for swift-syntax in 5.9: swiftlang/swift-syntax#1560