[5.9] Require switch
on a noncopyable-type binding to be explicitly consume
-d.
#66343
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.
• Issue: rdar://110073984
• Explanation: Pattern matching as currently implemented is consuming, but that's not necessarily what we want to be the default behavior when borrowing pattern matching is implemented. When a binding of noncopyable type is pattern-matched, require it to be annotated with the
consume
operator explicitly. That way, when we introduce borrowing pattern matching later, we have the option to makeswitch x
do the right thing without subtly changing the behavior of existing code.• Scope of Issue: New feature.
• Origination: Design decision from the Swift Language Steering Group.
• Risk: Low. Only affects new code using noncopyable enums.
• Pull Request URL: #65986
• Reviewed By: @hamishknight and @gottesmm
• Automated Testing: Swift CI
• Dependencies: None
• Builder Impact: Not applicable
• Directions for QE: None