<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>+1 again.</div><div><br>On 29 May 2016, at 21:39, Chris Lattner via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div><blockquote type="cite" class=""><div class="">On May 29, 2016, at 3:55 AM, Haravikk <<a href="mailto:swift-evolution@haravikk.me" class="">swift-evolution@haravikk.me</a>> wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><blockquote type="cite" class=""><div class="">On May 27, 2016, at 12:11 PM, Joe Groff <<a href="mailto:jgroff@apple.com" class="">jgroff@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hello Swift community,<br class=""><br class="">The review of SE-0099 “Restructuring Condition Clauses” begins now and runs through June 3, 2016. The proposal is available here:<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0099-conditionclauses.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0099-conditionclauses.md</a></div></div></blockquote></div><br class=""><div class="">Thanks everyone. FYI, Erica and I discussed it offlist and agreed to amend the proposal: now you can use semicolons or a newline to separate clauses of different types.</div></div></div></blockquote></div><br class=""><div class="">While I like the improvements made to the proposal, I’m still not in favour of removing the where clause; the introduction of semi-colons and new-lines as separators eliminates the need to use it if you don’t want to, so developers will be free to drop it if they wish, but I don’t see any real reason to remove it from the syntax, as it feels inconsistent if I can use it elsewhere, and I prefer to do so, particularly on if/guard.</div></div></div></blockquote><div><br class=""></div><div>I can definitely respect the position that “where” feels more readable than a semicolon, it certainly provides a more “fluent” style.</div><div><br class=""></div><div>That said, the existing Swift 2 syntax was inconsistent about this too: if you started a condition with an availability check, you comma separate it from a boolean with a comma:</div><div><br class=""></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if #available(iOS 52, *), x == y {} </div><div><br class=""></div>While we could have used “where” here, it was counterproductive because it didn’t increase clarity of code.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I get that there’s some inconsistency between the use of where on while and for loops, but actually the behaviour on while loops can be desirable, and I feel the ambiguity could be addressed in other ways. I feel like removing or changing the where clause should be its own issue, and this one should be focused on removing the ambiguity caused by the use of commas, as anyone that wants semi-colons but also likes to use where is forced to oppose the whole proposal as they’re not mutually exclusive.</div></div></div></blockquote></div><br class=""><div class="">It would certainly be possible to allow a developer to write either a semicolon or a where clause, but that would just encourage divergent styles. My problem with “where” is that it cannot be used uniformly and consistently. I’d rather go with something that can be used uniformly, particularly given its use for the same thing elsewhere in the language (reducing complexity of the language by a tiny bit).</div><div class=""><br class=""></div><div class="">-Chris</div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></body></html>