<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="">Seems we should either add trailing commas for ALL arbitrarily ordered lists of things *OR* remove any allowed trailing commas that exist at present (like arrays). To be consistent.<div class=""><br class=""></div><div class="">I didn’t even know arrays supported trailing commas until I read this thread, so it seems allowing it everywhere will give an additional flexibility to a subset of developers but not “pollute” things for the rest of us (if I can be so bold as to assume the majority prefer the cleaner approach.)</div><div class=""><br class=""></div><div class="">David</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 10, 2016, at 4:35 PM, Nisse Bergman via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; 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=""><div class="">I’m not upset at all. I just think the benefits does not warrant a change in the language :)</div><div class=""><br class=""></div><div class="">Nisse</div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 10 Mar 2016, at 17:28, Radosław Pietruszewski &lt;<a href="mailto:radexpl@gmail.com" class="">radexpl@gmail.com</a>&gt; 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=""><div class="">Trailing comma is not nonsensical, there is a specific purpose in allowing it (unlike your examples), and there’s precedent in Swift already.</div><div class=""><br class=""></div><div class="">Why does this proposal make you so upset?</div><br class=""><div class="">
<div class="">— Radek</div>
</div>
<br class=""><div class=""><blockquote type="cite" class=""><div class="">On 10 Mar 2016, at 16:30, Nisse Bergman &lt;<a href="mailto:nisse@potmo.com" class="">nisse@potmo.com</a>&gt; 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="">Should it also be ok to write other nonsensical characters in the code?<br class=""><div class="">I know this is a bit silly examples but should this be OK?</div><div class="">if a&gt;b hello#€€ {c = b}else ((wow)) {c=a;swap(a,b);arrgh(arrghument) asd asd asd asd}}}}}}</div><div class="">Should we allow extra curly braces where the compiler can remove unnecessary characters?&nbsp;</div><div class="">struct Cool {{{{{</div><div class="">}}}}}}}}</div><div class=""><br class=""></div><div class="">I don’t see any reason to allow two syntaxes just because you get two lines changed in a diff when you just added one.</div><div class="">Of course you should be able to format your code however you want. Space indent or tabs? I don’t care but this is not formatting, this is syntax.</div><div class="">I actually think that it is good for the community that the formatting stay kind of the same.</div><div class=""><br class=""></div><div class="">If you want trailing commas then remove the syntax for non-trailing commas.</div><div class=""><br class=""></div><div class="">Nisse</div><div class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 10 Mar 2016, at 13:34, ted van gaalen via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><div class="">Oh no, hurry!! switch of your screens!!&nbsp;</div><div class="">Hide under your desks!!&nbsp;</div><div class="">The SourcePolice-- has arrived!!! :o)</div><div class=""><br class=""></div><div class="">Imho people should be free to format and style their source in any way</div><div class="">they like -apart from company and team enforced standards when&nbsp;</div><div class="">working for or with them, of course.</div><div class="">For example, You might have noticed on this forum, e.g. that I always&nbsp;</div><div class="">put brackets on a new line, &nbsp;because I find it much easier to read.&nbsp;</div><div class=""><br class=""></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">(not doing so, I personally consider this as a traditional bad habit,&nbsp;</span></div><div class=""><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">taken over from&nbsp;</span><span style="background-color: rgba(255, 255, 255, 0);" class="">C&nbsp;</span><span style="background-color: rgba(255, 255, 255, 0);" class="">and C++, &nbsp;</span><span style="background-color: rgba(255, 255, 255, 0);" class="">being useful only in long gone days of limited&nbsp;</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">screen estate, when printing out sources was often the only way to have a&nbsp;</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">good impression. Or in digital medieval times, It saved a lot of weight (literaly)&nbsp;</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">when I still had to edit with&nbsp;</span><span style="background-color: rgba(255, 255, 255, 0);" class="">punched cards as source carrier, as each card&nbsp;</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">could only contain 1 line.)</span></div></div><div class=""><br class=""></div><div class="">Xcode respects largely personal preferences and e.g. in Eclipse, Netbeans&nbsp;</div><div class="">one can set one's own formatting preferences. However, for instance, the&nbsp;</div><div class="">Dart-language-people, in al their unlimited wisdom, found it necessary to&nbsp;</div><div class="">enforce a formatting dictatorship. You can't customize source formatting. &nbsp;</div><div class="">What they enforce is in their vision the only perfect way. Silly.&nbsp;</div><div class=""><br class=""></div><div class="">So, it you want to write code like ( fasten seatbelts, please)</div><div class=""><br class=""></div><div class="">&nbsp; &nbsp;if a&gt;b {c = b}else{c=a;swap(a,b);arrgh(arrghument)} // etc.</div><div class=""><br class=""></div><div class="">That's ok with me.. &nbsp;as long as I don't have to maintain your code.</div><div class="">The only (formatting and other) standards one should, or rather, must&nbsp;</div><div class="">conform to are those necessary when working in a team, or e.g.</div><div class="">when contributing source entities to Swift open source.</div><div class=""><br class=""></div><div class="">And where is the end? you could even take this 1984 style dictatorship&nbsp;</div><div class="">much further, e.g. by not allowing identifier names to be &lt; 3 characters etc.&nbsp;</div><div class="">(or removing certain unstylish source elements, but that's another matter, is it not?)</div><div class=""><br class=""></div><div class="">I'd say, it is rather a matter of commonSense++.</div><div class=""><br class=""></div><div class="">I've worked long ago in a Cobol team where it was not allowed to&nbsp;</div><div class="">start an if block with a "not" like so (in Swift):</div><div class="">&nbsp; if ( ! someFunc(value)</div><div class="">&nbsp; {&nbsp;</div><div class="">&nbsp; &nbsp; &nbsp; &nbsp;spanishInquisition()</div><div class="">&nbsp; }</div><div class="">we then had to write it like so:</div><div class=""><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; if someFunc(value)</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; {</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; }</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; else</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; {&nbsp;</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; &nbsp; &nbsp; &nbsp;spanishInquisition()</span></div><div class=""><span style="background-color: rgba(255, 255, 255, 0);" class="">&nbsp; }</span></div><div class="">Because that was the company's way of doing things,</div><div class="">stemming from the endless wisdom of the local gods,</div><div class=""><br class=""></div><div class="">?</div><div class="">(sorry CommaConfusion (wow, that's a really cool name for a band!))</div><div class=""><br class=""></div><div class="">people that worked there for twenty years or so,</div><div class="">without noticing that there is a world outside their fences...</div><div class=""><br class=""></div><div class="">but perhaps it also has to do with the fact that,</div><div class="">at least for building my own apps++, I've metamorphosed</div><div class="">into being an Indie Developer, and some aspects of</div><div class="">that are very cool, like not loosing 50% of my time</div><div class="">(although having plenty of it) for team coordination.</div><div class="">The luxury of doing things, at least in this domain,&nbsp;</div><div class="">the way I prefer.</div><div class=""><br class=""></div><div class="">TedvG.</div></div><div class=""><br class=""></div><div class=""><div class=""><div class=""><br class=""></div><div class=""><div apple-content-edited="true" class=""><div class=""><div class=""><font class=""><span style="background-color: rgba(255, 255, 255, 0);" class=""></span></font></div></div></div></div></div></div><div class=""><br class="">On 10 Mar 2016, at 09:09, Radek Pietruszewski &lt;<a href="mailto:radexpl@gmail.com" class="">radexpl@gmail.com</a>&gt; wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div class="">This is a linter's job.&nbsp;<br class=""><br class="">Sent from my iPad</div><div class=""><br class="">On 10 Mar 2016, at 05:28, Paul Ossenbruggen via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class="">Most people are good about it but there is always one or two who take advantage of something like this, and if you allow it they will. I think it would drive me crazy to see this:<div class=""><br class=""></div><div class=""><blockquote type="cite" class=""></blockquote>&nbsp;let person = Person(&nbsp;id: json['id’],&nbsp;name: json['name’],&nbsp;picture: Im2age(picture),&nbsp;friends: friends,)<div class=""><br class=""></div><div class="">This would drive the anally retentive people crazy! I mean Swift was great that it got rid of the braces here:</div><div class=""><br class=""></div><div class="">if x == y {</div><div class="">} else {</div><div class="">}</div><div class=""><br class=""></div><div class="">so no more running the parenthesis right up against the if. But someone I know does this now:&nbsp;</div><div class=""><br class=""></div><div class="">if x == y{</div><div class="">}else{</div><div class="">}&nbsp;</div><div class=""><br class=""></div><div class="">Arrrgh!</div><div class=""><br class=""></div><div class="">Can we force the space before and after the paren? Without requiring uncrustify? :-)&nbsp;</div><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Mar 9, 2016, at 12:47 PM, Patrick Gili via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; 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 Mar 9, 2016, at 2:34 PM, Grant Paul &lt;<a href="mailto:grp@fb.com" class="">grp@fb.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><span 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; float: none; display: inline !important;">Thanks for the feedback everyone! A few more notes to add to the proposal:</span><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;"><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 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; float: none; display: inline !important;">- Rust also supports trailing commas in argument lists and tuples.</span><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 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; float: none; display: inline !important;">- Alternative proposals suggested by Haravikk:</span><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 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; float: none; display: inline !important;">&nbsp;&nbsp;&nbsp;&nbsp;1. Support trailing commas only in multi-line argument and tuple declarations. This is an interesting approach, and would codify good practice in the language. It might make the most sense for a lint-style tool. On the other hand, in Swift, the choice of whitespace character is usually not significant. Putting this rule in the language would change that for only a small benefit.</span><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 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; float: none; display: inline !important;">&nbsp;&nbsp;&nbsp;&nbsp;2. Allowing trailing commas except when it could cause ambiguity; for example, with type inference, overloading, or default parameters. This seems like the most complete way to prevent mistakes, but it also seems like it might be difficult to implement if the allowed syntax changed based on the type checker. Would have to defer to people with more experience in the Swift compiler if this is feasible.</span><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;"><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;"><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 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; float: none; display: inline !important;">Nisse —<span class="Apple-converted-space">&nbsp;</span></span><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;"><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 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; float: none; display: inline !important;">Echoing what Radek said, the JavaScript “comma first” style comes directly from a *lack* of support for trailing commas (in Internet Explorer specifically). That style appears to have been first suggested here:<span class="Apple-converted-space">&nbsp;</span></span><a href="https://gist.github.com/isaacs/357981#gistcomment-397" 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;">https://gist.github.com/isaacs/357981#gistcomment-397</a><span 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; float: none; display: inline !important;"><span class="Apple-converted-space">&nbsp;</span>— part of the rationale was "a final trailing comma will cause errors in MSIE”.</span><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;"><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;"><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 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; float: none; display: inline !important;">Patrick and Ted —</span><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;"><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 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; float: none; display: inline !important;">Do you also see the same issue with incomplete thoughts when writing arrays or dictionaries, where Swift does currently support trailing commas? I think that case would be more likely than in argument lists: an incomplete argument list would fail to compile in most cases from an incorrect number of parameters, but an incomplete dictionary or array would necessarily still compile.</span><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;"></div></blockquote><div class=""><br class=""></div><div class="">Absolutely.</div><div class=""><br class=""></div><div class="">I work on a geographically diverse team, which demands an interrupt-driven environment. Dealing with phone calls, emails, and IMs must take priority to maintain communication between team members. Sometimes those interrupts deal with code. Thus, if I'm coding a call site or an array/dictionary initialization site when an interrupt comes in, it is likely that I don't switch back to the context, leaving some incomplete code. I'm sure if I put my head to it, I could think of other places allowing trailing commands are going to hurt me more than help me.&nbsp;</div><br class=""><blockquote type="cite" class=""><div class=""><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 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; float: none; display: inline !important;">It could be a reasonable proposal to disallow trailing commas in all places, albeit one I would disagree with.</span></div></blockquote><blockquote type="cite" class=""><div class=""><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;"><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 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; float: none; display: inline !important;">Grant</span><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;"><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;"><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;"><blockquote type="cite" 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;">On Mar 9, 2016, at 10:55, Patrick Gili &lt;<a href="mailto:gili.patrick.r@gili-labs.com" class="">gili.patrick.r@gili-labs.com</a>&gt; wrote:<br class=""><br class="">I have to agree with Ted. When I leave a "trailing comma", it's almost always because I constructing a call and didn't finish, for whatever reason. Thankfully, the compiler is nice enough to tell me when I committed this error.<br class=""><br class="">Cheers,<br class="">-Patrick<br class=""><br class=""><blockquote type="cite" class="">On Mar 9, 2016, at 9:44 AM, Ted F.A. van Gaalen via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""><br class="">Hi Paul<br class=""><br class="">I don’t think that is a good idea because:<br class=""><br class="">as in most human languages writing,<br class="">the comma tells us,<br class="">that more is following,<br class="">?<br class="">?<br class="">.. oops. hey, no more text? &nbsp;&nbsp;<br class=""><br class="">So, to me your examples are incomplete statements,<br class="">leading to mistakes when editing, me assuming that I<br class="">didn’t finish typing the statement, when I started<br class="">editing the source say, three months later.<br class="">or, doing maintenance and having to fast-read through<br class="">many old source files.<br class=""><br class="">Is it really so hard to press the DEL key to remove<br class="">the trailing comma?<br class=""><br class="">Greetings,<br class="">TedvG ,<br class=""><br class=""><br class=""><br class="">(sorry no more text here :0)<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class=""><br class="">Right now, Swift argument lists are not permitted to contain trailing commas. To make multi-line calls easier, we propose allowing trailing commas in argument (and tuple) syntax:<br class=""><br class="">let person = Person(<br class="">&nbsp;&nbsp;&nbsp;id: json['id'],<br class="">&nbsp;&nbsp;&nbsp;name: json['name'],<br class="">&nbsp;&nbsp;&nbsp;picture: Im2age(picture),<br class="">&nbsp;&nbsp;&nbsp;friends: friends,<br class="">)<br class=""></blockquote>_______________________________________________<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://urldefense.proofpoint.com/v2/url?u=https-3A__lists.swift.org_mailman_listinfo_swift-2Devolution&amp;d=CwIFaQ&amp;c=5VD0RTtNlTh3ycd41b3MUw&amp;r=TiMad4REPS_rpOXRZiQytQ&amp;m=5hE4Yb04I38N2u3hF1YNWi2rnd6td7WW3_sIMgH1UHU&amp;s=QncXBAO3MI-M5GEJ-wFM9qPqCReaGIzogre9d5EubAE&amp;e=" class="">https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.swift.org_mailman_listinfo_swift-2Devolution&amp;d=CwIFaQ&amp;c=5VD0RTtNlTh3ycd41b3MUw&amp;r=TiMad4REPS_rpOXRZiQytQ&amp;m=5hE4Yb04I38N2u3hF1YNWi2rnd6td7WW3_sIMgH1UHU&amp;s=QncXBAO3MI-M5GEJ-wFM9qPqCReaGIzogre9d5EubAE&amp;e=</a></blockquote></blockquote></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></div></div></blockquote><blockquote type="cite" class=""><div class=""><span class="">_______________________________________________</span><br class=""><span class="">swift-evolution mailing list</span><br class=""><span class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a></span><br class=""><span class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br class=""></div></blockquote></div></blockquote></div>_______________________________________________<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></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); font-family: Verdana;  font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">David James</div></div></span></div></span></div></span></div></div>
</div>
<br class=""></div></body></html>