<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 22 Feb 2017, at 11:48, Brent Royal-Gordon &lt;<a href="mailto:brent@architechies.com" class="">brent@architechies.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><blockquote type="cite" class="">On Feb 22, 2017, at 3:32 AM, Haravikk via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>foo.example(foo) // What did I mean here?<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>let result = foo.example(foo:) // This looks like I might be trying to select a function, rather than call it<br class=""></blockquote><br class="">I think it would be really weird to support not one, but *two* potentially ambiguous sugar forms.<br class=""></div></div></blockquote></div><br class=""><div class="">Those aren't examples I think should be supported, I was thinking out loud. The point I was trying to make is that it's not the trailing nature that's a requirement, but that the real requirement for this feature to work is that there's at least one other, non-Void argument.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">On another note, one other alternative I did think of for declaration is that perhaps it might be better still to use an attribute to specify a label-only "argument". Think of it like an attribute on the type, except that it specifies that there is no type:</div><div class=""><br class=""></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>func adding(_ other:Self, reportingOverflow:@labelonly) { … }</font></div><div class=""><br class=""></div><div class="">The attribute makes it absolutely clear that this is just a label and not an actual, functional argument (there won't be a reportingOverflow local variable), and that it can be passed without a value when calling this method. It'll still need the trailing colon for possible disambiguation of variables though.</div></body></html>