<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=""><div class="">Chris, tell me if this code example clarifies what you are proposing.</div><div class=""><br class=""></div><div class="">Given:</div><div class="">func moveTo(x x:Double, y:Double} {/*…*/ }</div><div class="">moveTo(x:0, y:0)</div><div class=""><br class=""></div><div class="">This is the behavior that is being proposed to be removed:</div><div class=""><div class="">var point = (x:1.0, y:1.0)</div></div><div class="">moveTo(point)</div><div class=""><br class=""></div><div class="">instead, I’d have to do either:</div><div class="">moveTo(x:point.x, y:point.y)</div><div class=""><br class=""></div><div class="">or:</div><div class=""><br class=""></div><div class="">func moveTo(point:(x:Double, y:Double)) {</div><div class=""> moveTo(x:point.x, y:point.y)</div><div class="">}</div><div class=""><br class=""></div><div class="">today, I’m not entirely sure the behavior if I defined that second function signature. I’m guessing that is one of the motivators to remove this behavior.</div><div class=""><br class=""></div><div class="">-DW</div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Jan 27, 2016, at 12:10 PM, Chris Lattner via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">On Jan 27, 2016, at 11:03 AM,<span class="Apple-converted-space"> </span><a href="mailto:swift@lng.la" class="">swift@lng.la</a><span class="Apple-converted-space"> </span>wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="">I'm +1 if this will eventually be replaced with a better-designed version, but I do use it and would be sad to see it go. I've found it very helpful for testing:</div></div></div></blockquote><div class=""><br class=""></div><div class="">Hi Jarod, where are you using this feature?</div><br class=""><blockquote type="cite" class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div><div class=""><div class="" style="margin: 0px; line-height: normal; font-family: Menlo;"><div class="" style="margin: 0px; line-height: normal;"><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"><span class="" style="color: rgb(187, 44, 162);">protocol</span><span class="Apple-converted-space"> </span>APIType {</div><div class="" style="margin: 0px; font-size: 11px; line-height: normal;"><font color="#3b3b3b" class=""> </font><span class="" style="color: rgb(187, 44, 162);">func</span><font color="#3b3b3b" class=""><span class="Apple-converted-space"> </span>getChatMessages(channel channel:<span class="Apple-converted-space"> </span></font><span class="" style="color: rgb(112, 61, 170);">ChatChannel</span><font color="#3b3b3b" class="">, limit:<span class="Apple-converted-space"> </span></font><span class="" style="color: rgb(112, 61, 170);">Int</span><font color="#3b3b3b" class="">, success: (chatMessages: [</font><span class="" style="color: rgb(79, 129, 135);">ChatMessage</span><font color="#3b3b3b" class="">]) -><span class="Apple-converted-space"> </span></font><span class="" style="color: rgb(112, 61, 170);">Void</span><font color="#3b3b3b" class="">, failure: (error: </font><span class="" style="color: rgb(112, 61, 170);">NSError</span><font color="#3b3b3b" class="">) -><span class="Apple-converted-space"> </span></font><span class="" style="color: rgb(112, 61, 170);">Void</span><font color="#3b3b3b" class="">)</font></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;">}</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal; min-height: 13px;"><br class=""></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"><span class="" style="color: rgb(187, 44, 162);">class</span><span class="Apple-converted-space"> </span>FakeAPI:<span class="Apple-converted-space"> </span><span class="" style="color: rgb(79, 129, 135);">APIType</span><span class="Apple-converted-space"> </span>{</div><div class="" style="margin: 0px; font-size: 11px; line-height: normal;"><font color="#3b3b3b" class=""> </font><span class="" style="color: rgb(187, 44, 162);">var</span><font color="#3b3b3b" class=""><span class="Apple-converted-space"> </span>getChatMessagesEndpoint =<span class="Apple-converted-space"> </span></font><span class="" style="color: rgb(79, 129, 135);">FakeAPIEndpoint</span><font color="#3b3b3b" class="">(</font></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> calls: [(channel: ChatChannel, limit:<span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">Int</span>)](),</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> successStubs: [[<span class="" style="color: rgb(79, 129, 135);">ChatMessage</span>]](),</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> failureStubs: [<span class="" style="color: rgb(112, 61, 170);">NSError</span>]()</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> )</div><div style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal; min-height: 13px;" class=""> <br class="webkit-block-placeholder"></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(187, 44, 162);">func</span><span class="Apple-converted-space"> </span>getChatMessages(channel channel:<span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">ChatChannel</span>, limit:<span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">Int</span>, success: (chatMessages: [<span class="" style="color: rgb(79, 129, 135);">ChatMessage</span>]) -><span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">Void</span>, failure: (error: <span class="" style="color: rgb(112, 61, 170);">NSError</span>) -><span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">Void</span>) {</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> getChatMessagesEndpoint.handleCall(success, failure, callParams: (channel: channel, limit: limit))</div></div></div></div></div></div></blockquote><div class=""><br class=""></div><div class="">If you are referring to this line, then there is no change. The only affected case is in call sites that take a single parameter without a label. Passing tuples as values will not be change.</div><div class=""><br class=""></div><div class="">-Chris</div><div class=""><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><div class="" style="margin: 0px; line-height: normal; font-family: Menlo;"><div class="" style="margin: 0px; line-height: normal;"><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> }</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;">}</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal; min-height: 13px;"><br class=""></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"><span class="" style="color: rgb(187, 44, 162);">struct</span><span class="Apple-converted-space"> </span>FakeAPIEndpoint<CallParams, SuccessParams, FailureParams> {</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(187, 44, 162);">private(set)</span><span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">var</span><span class="Apple-converted-space"> </span>calls: [<span class="" style="color: rgb(112, 61, 170);">CallParams</span>]</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(187, 44, 162);">private(set)</span><span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">var</span><span class="Apple-converted-space"> </span>successStubs: [<span class="" style="color: rgb(112, 61, 170);">SuccessParams</span>]</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(187, 44, 162);">private(set)</span><span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">var</span><span class="Apple-converted-space"> </span>failureStubs: [<span class="" style="color: rgb(112, 61, 170);">FailureParams</span>]</div><div style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal; min-height: 13px;" class=""> <br class="webkit-block-placeholder"></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(187, 44, 162);">mutating</span><span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">func</span><span class="Apple-converted-space"> </span>stubSuccess(params:<span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">SuccessParams</span>) {</div><div class="" style="color: rgb(79, 129, 135); margin: 0px; font-size: 11px; line-height: normal;"><span class="" style="color: rgb(59, 59, 59);"> </span><span class="" style="color: rgb(59, 59, 59);"> </span>successStubs<span class="">.</span><span class="" style="color: rgb(61, 29, 129);">append</span><span class="">(params)</span></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> }</div><div style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal; min-height: 13px;" class=""> <br class="webkit-block-placeholder"></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(187, 44, 162);">mutating</span><span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">func</span><span class="Apple-converted-space"> </span>stubFailure(params:<span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">FailureParams</span>) {</div><div class="" style="color: rgb(79, 129, 135); margin: 0px; font-size: 11px; line-height: normal;"><span class="" style="color: rgb(59, 59, 59);"> </span><span class="" style="color: rgb(59, 59, 59);"> </span>failureStubs<span class="">.</span><span class="" style="color: rgb(61, 29, 129);">append</span><span class="">(params)</span></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> }</div><div style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal; min-height: 13px;" class=""> <br class="webkit-block-placeholder"></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(187, 44, 162);">private</span><span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">mutating</span><span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">func</span><span class="Apple-converted-space"> </span>handleCall(success: (<span class="" style="color: rgb(112, 61, 170);">SuccessParams</span>) -><span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">Void</span>,<span class="Apple-converted-space"> </span><span class="" style="color: rgb(187, 44, 162);">_</span><span class="Apple-converted-space"> </span>failure: (<span class="" style="color: rgb(112, 61, 170);">FailureParams</span>) -><span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">Void</span>, call:<span class="Apple-converted-space"> </span><span class="" style="color: rgb(112, 61, 170);">CallParams</span>) {</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> <span class="" style="color: rgb(79, 129, 135);">calls</span>.<span class="" style="color: rgb(61, 29, 129);">append</span>(call)</div><div style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal; min-height: 13px;" class=""> <br class="webkit-block-placeholder"></div><div class="" style="color: rgb(79, 129, 135); margin: 0px; font-size: 11px; line-height: normal;"><span class="" style="color: rgb(59, 59, 59);"> </span><span class="" style="color: rgb(59, 59, 59);"> </span><span class="" style="color: rgb(187, 44, 162);">if</span><span class=""><span class="Apple-converted-space"> </span></span>successStubs<span class="">.</span><span class="" style="color: rgb(112, 61, 170);">count</span><span class=""><span class="Apple-converted-space"> </span>><span class="Apple-converted-space"> </span></span><span class="" style="color: rgb(39, 42, 216);">0</span><span class=""><span class="Apple-converted-space"> </span>{</span></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> success(<span class="" style="color: rgb(79, 129, 135);">successStubs</span>.<span class="" style="color: rgb(61, 29, 129);">removeFirst</span>())</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> }</div><div class="" style="color: rgb(79, 129, 135); margin: 0px; font-size: 11px; line-height: normal;"><span class="" style="color: rgb(59, 59, 59);"> </span><span class="" style="color: rgb(59, 59, 59);"> </span><span class="" style="color: rgb(187, 44, 162);">else</span><span class=""><span class="Apple-converted-space"> </span></span><span class="" style="color: rgb(187, 44, 162);">if</span><span class=""><span class="Apple-converted-space"> </span></span>failureStubs<span class="">.</span><span class="" style="color: rgb(112, 61, 170);">count</span><span class=""><span class="Apple-converted-space"> </span>><span class="Apple-converted-space"> </span></span><span class="" style="color: rgb(39, 42, 216);">0</span><span class=""><span class="Apple-converted-space"> </span>{</span></div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> failure(<span class="" style="color: rgb(79, 129, 135);">failureStubs</span>.<span class="" style="color: rgb(61, 29, 129);">removeFirst</span>())</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> }</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;"> }</div><div class="" style="color: rgb(59, 59, 59); margin: 0px; font-size: 11px; line-height: normal;">}</div></div></div></div><div class=""><br class=""></div><div class="">It's really nice to have that handleCall method that can call the success or failure callback automatically rather than reimplementing that functionality in every fake API call.</div><div class=""><br class=""></div><div class="">Jarod</div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 27, 2016, at 10:16, Chris Lattner via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><div class=""><div class=""><br class=""><blockquote type="cite" class="">On Jan 27, 2016, at 2:18 AM, Nisse Bergman <<a href="mailto:nisse@potmo.com" class="">nisse@potmo.com</a>> wrote:<br class=""><br class="">-1 I use this in both my mocking API and in JSON deserialising/serializing.<br class="">I think this is a great thing to have.<br class=""></blockquote><br class="">Ok, I’m definitely interested in knowing more. Please include a code sample, showing both the declaration being splatted into and the call sites. Otherwise, I can’t tell how much value this feature is adding, and what the pain would be if it were removed. Thanks!<br class=""><br class="">-Chris<br class=""><br class=""><blockquote type="cite" class=""><br class=""><blockquote type="cite" class="">On 27 Jan 2016, at 11:07, David Waite via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:<br class=""><br class="">I used this just last week! But only as an illustration<br class=""><br class="">+1<br class=""><br class="">One comment though, a splat operator need not be purely syntactic sugar - it could be the way arrays are applied to variadic functions.<br class=""><br class="">-DW<br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></blockquote><br class=""></blockquote><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">swift-evolution mailing list</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a></span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span></div></blockquote></div><br class=""></div></body></html>