<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br></div><div>On May 10, 2016, at 4:57 PM, Rob Napier via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">On Tue, May 10, 2016 at 2:53 PM, Chris Lattner via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
&nbsp; &nbsp; &nbsp; &nbsp; * What is your evaluation of the proposal?<br></blockquote><div><br></div><div>Trailing commas is clearly very useful in the collections case. While that case is more common than functions and tuples, I don't see any reason that collections should be treated as a special case. Why should some comma-separated lists allow trailing commas and some not?</div><div><br></div><div>This seems a reasonable move towards consistency and is useful in some cases while not harmful in others. When in doubt, I'd rather broad rules ("trailing commas are allowed in comma-separated lists") rather than special cases. This improves teachability.</div></div></div></div></div></blockquote><div><br></div>If one look purely at commas, the inconsistency may be hard to explain, but if one include the enclosing characters there are clear rules:<div><br></div><div>- within square brackets: trailing comma allowed</div><div>- within parenthesis: trailing comma not allowed</div><div>- within angle bracket: trailing comma not allowed</div><div><br></div><div>Weird, I do not recall anyone mentioning generics in the original trailing comma thread.</div><div><br></div><div>Dany</div><div><br></div><div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>It also improves diffs when functions pick up new parameters, particularly ones with default values. This is particularly common (and expected) in constructors. That's valuable.</div><div><br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&nbsp; &nbsp; &nbsp; &nbsp; * Is the problem being addressed significant enough to warrant a change to Swift?<br></blockquote><div><br></div><div>As a language rule simplification, I believe it's worth a change if it doesn't introduce problematic corner cases. The fact that it improves diffs is no less valuable for functions than it is for collections.</div><div><br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&nbsp; &nbsp; &nbsp; &nbsp; * Does this proposal fit well with the feel and direction of Swift?<br></blockquote><div><br></div><div>Yes; it definitely feels Swifty in the same way that it does for collections. There's no reason for Swift to treat them differently.</div><div><br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&nbsp; &nbsp; &nbsp; &nbsp; * If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?<br></blockquote><div><br></div><div>I've seen this in Perl, Python, and Go. Basically every language I've used that allows trailing commas in collections also allows them in function calls. In Go, the trailing comma is mandatory in some cases. This has been nice for consistency.</div><div><br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&nbsp; &nbsp; &nbsp; &nbsp; * How much effort did you put into your review? A glance, a quick reading, or an in-depth study?<br></blockquote><div><br></div><div>Quick reading.</div><div><br></div><div>-Rob</div><div><br></div></div><div class="gmail_signature"><div dir="ltr"><div></div></div></div>
</div></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></div></body></html>