<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 18, 2016, at 2:55 PM, Howard Lovatt via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><div class=""><br class=""><blockquote type="cite" class="">On Tuesday, 19 January 2016, Jack Lawrence &lt;<a href="mailto:jackl@apple.com" class="">jackl@apple.com</a>&gt; wrote:</blockquote></div></blockquote><blockquote type="cite" class=""><blockquote type="cite" class=""><br class=""></blockquote></blockquote><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">On Jan 18, 2016, at 2:50 PM, Liam Butler-Lawrence via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></blockquote></blockquote></blockquote><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><br class=""></blockquote></blockquote></blockquote><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Set("a",&nbsp;"b",&nbsp;"c”)&nbsp;doesn’t compile. It currently has to be &nbsp;Set(arrayLiteral:&nbsp;"a",&nbsp;"b",&nbsp;"c”). That said, I’d be satisfied with removing the external&nbsp;parameter name “arrayLiteral”. Not only is it unnecessary, but it’s confusing too: variadic parameters are not the same as an Array.<br class=""></blockquote></blockquote></blockquote><blockquote type="cite" class=""><blockquote type="cite" class=""><br class=""></blockquote></blockquote><blockquote type="cite" class=""><div class=""><blockquote type="cite" class="">init(arrayLiteral:) is there to satisfy ArrayLiteralConvertible. Set([“a”, “b”, “c”]) works just fine.</blockquote></div></blockquote><blockquote type="cite" class=""><br class=""></blockquote></div><div><blockquote type="cite" class="">Sure, but you could add another overload without the label.<br class=""></blockquote></div><div><br class=""></div>Only if you break existing code. Consider this expression:<div class=""><br class=""></div><div class="">&nbsp; &nbsp; Set(["a", "b"])</div><div class=""><br class=""></div><div class="">Is this</div><div class="">1. a Set&lt;String&gt; with two elements "a" and "b"</div><div class="">2. a Set&lt;Array&lt;String&gt;&gt; with one element ["a", "b"]</div><div class=""><br class=""></div><div class="">Currently it means #1. You could change it to mean #2, but that breaks existing code that expects #1. You could try to overload the no-name initializer, but that will be confusing to humans in some cases.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">--&nbsp;</div><div class="">Greg Parker &nbsp; &nbsp; <a href="mailto:gparker@apple.com" class="">gparker@apple.com</a> &nbsp; &nbsp; Runtime Wrangler</div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>