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

Joe Groff jgroff at apple.com
Fri Dec 18 19:30:36 CST 2015


> 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.

-Joe


More information about the swift-evolution mailing list