Honestly, given that the detailed implementation is core team-approved, I wonder if it ought to be just one of those rare pre-accepted proposals instead. It may not be ABI impacting, but as a bugfix for a Swift 3 proposal there&#39;s a good argument it should go out in 3.x. My two cents anyway.<br><br><br><div class="gmail_quote"><div dir="ltr">On Mon, Oct 17, 2016 at 07:16 Austin Zheng &lt;<a href="mailto:austinzheng@gmail.com">austinzheng@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="gmail_msg">It seems like that link should be added to the &#39;frequently proposed changes&#39; page on the repo. I&#39;ll prepare a PR.<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"></div></div><div style="word-wrap:break-word" class="gmail_msg"><div class="gmail_msg">Austin</div></div><div style="word-wrap:break-word" class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"><div class="gmail_msg"><blockquote type="cite" class="gmail_msg"><div class="gmail_msg">On Oct 16, 2016, at 4:09 PM, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br class="m_-7387817839550401641Apple-interchange-newline gmail_msg"><div class="gmail_msg">Welcome to the list! It seems the community and core team are in agreement about your point. As mentioned previously, the core team has laid out a two-step roadmap to restoring argument labels:<br class="gmail_msg"><br class="gmail_msg"><a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160711/024331.html" class="gmail_msg" target="_blank">https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160711/024331.html</a><br class="gmail_msg"><br class="gmail_msg">Hope that helps!<br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Mon, Oct 17, 2016 at 06:35 Grant Kemp via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">Hi all</span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">A South African in London here and I have decided to make the jump to trying to help </span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-lG" style="background-color:rgba(251,246,167,0.498039);outline:transparent dashed 1px;color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap">Swift</span><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg"> develop. </span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">I was an android and web developer and </span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-lG" style="background-color:rgba(251,246,167,0.498039);outline:transparent dashed 1px;color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap">swift</span><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg"> converted me to iOS programming which has become something that I love. I have built several apps on iOS and on macOS using it and thoroughly enjoyed it. </span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">One think has made me fall a little out of love with </span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-lG" style="background-color:rgba(251,246,167,0.498039);outline:transparent dashed 1px;color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap">swift</span><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg"> 3 was the removal of </span><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">completion handler argument labels </span><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">which has created:</span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">1. Less maintainable code for teams </span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">2. Less readable  and thus more error prone code </span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">3. Slower code to write as now I have to regularly scroll to the top of the method to find out what the parameters should be . </span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">4. Seems to be at odds with other parts of the api which favours labels. </span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><font color="#212121" face="helvetica neue, helvetica, arial, sans-serif" class="gmail_msg"><span style="white-space:pre-wrap" class="gmail_msg">I have found quite a lot of support from others via my stack overflow question here: </span></font><div class="gmail_msg"><font color="#212121" face="helvetica neue, helvetica, arial, sans-serif" class="gmail_msg"><span style="white-space:pre-wrap" class="gmail_msg"><a href="http://stackoverflow.com/questions/39613272/xcode-8-function-types-cannot-have-argument-label-breaking-my-build" class="gmail_msg" target="_blank">http://stackoverflow.com/questions/39613272/xcode-8-function-types-cannot-have-argument-label-breaking-my-build</a></span></font><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;white-space:pre-wrap"><br class="gmail_msg">Here is my suggestion: </div><div class="gmail_msg">Currently the Swift 3 version does not allow arguments in the completionhandler method, which is confusing and not very readable.</div><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p2"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">    </span></span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">func</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"> myMethod(</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">_</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"> completionhandler:(</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">_</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"> downloadedValue:</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">String</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">,</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">_</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"> isActive:</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">Bool</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">, </span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">_</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"> error:</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">NSError</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">)-&gt; </span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">Void</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">) {<br class="gmail_msg"></span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s4"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">        </span></span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">//&lt;&lt;After doing some async method such as downloading from an API &gt;&gt;</span></p><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p2"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">        </span>completionhandler(myString, </span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">true</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">, myError)</span></p><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p2"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">    </span>}<br class="gmail_msg"></span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s4"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">    </span></span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">// INSTEAD: ideally the argument labels should be added optionally to be called in the completion method such as below and using a Tuple-like syntax to indicate that the method should have the labels</span></p><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p2"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">    </span></span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">func</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"> myMethod(</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">_</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"> completionhandler:( downloadedValue:</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">String</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">, isActive:</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">Bool</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">,<span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">  </span>error:</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">NSError</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">)-&gt; </span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s3">Void</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">) {</span></p><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p3"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s4"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">        </span></span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">//&lt;&lt;After doing some async method such as downloading from an API &gt;&gt;</span><br class="gmail_msg"></p><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p2"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">        </span>completionhandler(dowloadedValue:myString, isActive:</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s2">true</span><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1">, error:myError)</span></p><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p2"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-Apple-converted-space">    </span>}</span></p><p class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-p2"><span class="gmail_msg m_-7387817839550401641m_9066287156720676382inbox-inbox-s1"><br class="gmail_msg"></span></p><div class="gmail_msg"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">Thanks for the help ( and any feedback on my idea above ) </span><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><br class="gmail_msg" style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap"><span style="color:rgb(33,33,33);font-family:&quot;helvetica neue&quot;,helvetica,arial,sans-serif;font-size:13px;white-space:pre-wrap" class="gmail_msg">Thanks for the epic work you are doing ! </span><br class="gmail_msg"></div></div><div dir="ltr" class="gmail_msg">-- <br class="gmail_msg"></div><div data-smartmail="gmail_signature" class="gmail_msg"><div dir="ltr" class="gmail_msg">Sent from my mobile </div></div>
_______________________________________________<br class="gmail_msg">
swift-evolution mailing list<br class="gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="gmail_msg">
</blockquote></div>
_______________________________________________<br class="gmail_msg">swift-evolution mailing list<br class="gmail_msg"><a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="gmail_msg"><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="gmail_msg"></div></blockquote></div><br class="gmail_msg"></div></div></div></blockquote></div>