<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 24, 2017 at 12:57 PM, Tony Parker <span dir="ltr">&lt;<a href="mailto:anthony.parker@apple.com" target="_blank">anthony.parker@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><br><div><span class=""><br><blockquote type="cite"><div>On May 24, 2017, at 12:51 PM, Pavel Yaskevich &lt;<a href="mailto:pavel.yaskevich@gmail.com" target="_blank">pavel.yaskevich@gmail.com</a>&gt; wrote:</div><br class="m_-3568990687382255573Apple-interchange-newline"><div><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div class="gmail_extra">Hi Tony,</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_quote">On Wed, May 24, 2017 at 12:37 PM, Jose Cheyo Jimenez via swift-evolution<span class="m_-3568990687382255573Apple-converted-space"> </span><span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-<wbr>evolution@swift.org</a>&gt;</span><span class="m_-3568990687382255573Apple-converted-space"> </span>wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word">The way I interpreted SE-110 is that it was suppose to address anonymous arguments. <div><br></div><div>Instead of using $0.0, $0.1, One needs to use $0, $1 when there are multiple arguments. <div><br></div><div>I was not aware of any implications for explicitly named parameters. </div><div><br></div><div>Perhaps the issue is with the signature of forEach. Does it need to be a nested tuple?</div><div><br></div><div>public func forEach(_ body: ((key: Key, value: Value)) throws -&gt; Void) rethro<wbr>ws<br></div></div></div></blockquote><div><br></div><div>Jose is right about this one, since the signature of forEach is a tuple nested into paren it means that `forEach` expects a single argument</div><div>of a tuple type instead of two arguments, such &quot;tuple argument destructuring&quot; was supported by Swift 3 but after SE-0110 no longer is</div><div>because type-checker is preserving top level parens in parameters/arguments. </div><div><br></div><div>Best Regards, Pavel.</div></div></div></div></div></blockquote><div><br></div></span>Well, frankly, I don’t think we should ship with such a glaring usability regression.</div><div><br></div><div>What’s the mitigation plan? Perhaps we should wholesale revert it until we have time to reconsider the fallout?</div></div></blockquote><div><br></div><div>There is a migrator support, and I&#39;ve made a couple of diagnostic improvements for it, that produce fix-its which are exactly</div><div>what you see in the aforementioned PR. Otherwise, I&#39;d defer to Slava, who was implementor of SE-0110.</div><div><br></div><div> </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;line-break:after-white-space"><span class="HOEnZb"><font color="#888888"><div><br></div><div>- Tony</div></font></span><span class=""><div><br><blockquote type="cite"><div><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div class="gmail_extra"><div class="gmail_quote"><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><div><div><div><br></div><div><br><div><blockquote type="cite"><div><div class="m_-3568990687382255573gmail-h5"><div>On May 24, 2017, at 12:12 PM, Tony Parker via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br class="m_-3568990687382255573gmail-m_6296259074267002623Apple-interchange-newline"></div></div><div><div><div class="m_-3568990687382255573gmail-h5"><div style="word-wrap:break-word">Hi everyone,<div><br></div><div>We received a pull request in swift-corelibs-foundation which is apparently in response to a language change for SE-0110.</div><div><br></div><div>It turns this perfectly reasonable code:</div><div><div><br></div><div><font face="Menlo">-        self.forEach { (keyItem, valueItem) in</font></div><div><br></div><div>into this:</div><div><br></div><div><br><font face="Menlo">+        self.forEach { (arg) in<br>+            let (keyItem, valueItem) = arg<br></font><br>Is that really the design pattern we want to encourage? What was wrong with the previous code?</div><div><br></div><div>(<a href="https://github.com/apple/swift-corelibs-foundation/pull/995/files" target="_blank">https://github.com/apple/swif<wbr>t-corelibs-foundation/pull/<wbr>995/files</a>)</div></div><div><br></div><div>- Tony</div><div><br></div></div></div></div>______________________________<wbr>_________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailma<wbr>n/listinfo/swift-evolution</a><br></div></blockquote></div><br></div></div></div></div></div><br>______________________________<wbr>_________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailma<wbr>n/listinfo/swift-evolution</a></blockquote></div></div></div></div></blockquote></div><br></span></div></blockquote></div><br></div></div>