Hello, Swift community!
The combined third review of SE-0366: consume
operator to end the lifetime of a variable binding and second review of SE-0377: borrow
and consume
parameter ownership modifiers begins now and run through December 14th, 2022.
Throughout the reviews for SE-0366 and SE-0377, reviewers surfaced the concern that ‘take’ is too general a name to describe ownership transfer; ‘take’ is used colloquially to describe general passing of arguments to parameters, e.g. a function takes an argument of type X. The Language Workgroup agrees and recommends the term 'consume' instead of 'take', because it is a more specific term that has the same semantic meaning in the context of ownership transfer.
As such, the proposal authors have made the following amendments to SE-0366 and SE-0377:
- The
take
operator is renamed toconsume
. - The
take
andtaking
parameter modifiers are renamed toconsume
andconsuming
, respectively.
This round of review is focused on the renaming of take
/taking
to consume
/consuming
. Ideas for terms other than 'consume' are also welcome, and please provide an explanation for why you believe a different term is a better choice.
Note that the Language Workgroup will not consider renaming existing keywords such as inout
and mutating
, because that would result in a wide-spread source breaking change for little benefit.
Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to the review manager by email or DM. When contacting the review manager directly, please keep the proposal link at the top of the message and put "SE-0366" or "SE-0377" in the subject line.
What goes into a review?
The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:
- What is your evaluation of the proposal?
- Is the problem being addressed significant enough to warrant a change to Swift?
- Does this proposal fit well with the feel and direction of Swift?
- If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
- How much effort did you put into your review? A glance, a quick reading, or an in-depth study?
More information about the Swift evolution process is available at:
https://github.com/apple/swift-evolution/blob/main/process.md
Thank you for your help in making Swift a better language.
Holly Borla
Review Manager