[swift-evolution] [Pitch] Replace 'inout' with '&'

Dave Abrahams dabrahams at apple.com
Fri Dec 18 19:33:13 CST 2015


> On Dec 18, 2015, at 5:30 PM, Joe Groff via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 
>> On Dec 18, 2015, at 5:27 PM, Matthew Johnson <matthew at anandabits.com> wrote:
>> 
>> +1.  Can you provide an example showing where you would place it though?
> 
> Good question. Three options I see:
> 
> - Before the label and binding names, where inout appears today, and where other argument modifiers like `@autoclosure` go: func foo(&label x: Int)
> 
> which is the minimal change.
> 
> - Before the binding name: func foo(label &x: Int)
> 
> which is problematic for implicitly-labeled arguments.
> 
> - Before the type name: func foo(label x: &Int)
> 
> This is the most definition-follows-use-y, but would be inconsistent with other argument modifiers.

What is your suggested term for these kinds of parameters once we retire “inout”?

-Dave





More information about the swift-evolution mailing list