<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="">Le 9 janv. 2018 à 18:18, Nate Cook &lt;<a href="mailto:natecook@apple.com" class="">natecook@apple.com</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class=""><div style="font-family: Helvetica; font-size: 14px; 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; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" class=""><div class="">On Jan 9, 2018, at 11:00 AM, Gwendal Roué 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 class="" 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; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">Le 9 janv. 2018 à 17:16, Zach Waldowski via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class=""><div class="" style="font-size: 14px; 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; -webkit-text-stroke-width: 0px; font-family: Arial;">I'm not sure a valid use case by a third party makes it hold its weight for inclusion in the stdlib.</div></div></blockquote><div class=""><br class=""></div><div class="">You're definitely right, and that's why I wrote with the most humble tone I could.</div><div class=""><br class=""></div><div class="">Yet, the design of the stdlib *requires* some speculation about use cases, and speculation is *helped* by the exposition of actual uses. I'm not sure readers of the mailing list had any idea of the use cases of the current DictionaryLiteral, and maybe I helped a little.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="" style="font-size: 14px; 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; -webkit-text-stroke-width: 0px; font-family: Arial;">Reproducing its feature set is extremely trivial, and would probably allow you to hint the implementation details better for your use case.<br class=""></div></div></blockquote><div class=""><br class=""></div><div class="">Please define "trivial”.</div></div></div></blockquote><div class=""><blockquote type="cite" class=""><br class=""></blockquote></div><blockquote type="cite" class=""><div class=""><div class="" 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; -webkit-text-stroke-width: 0px;"><div class="">In case anybody would wonder, in the line below the `row` variable is of type Row which happens to adopt ExpressibleByDictionaryLiteral. It is not of type DictionaryLiteral. The use case here is the ability to express a row with a dictionary literal that accepts duplicated keys and preserves ordering:</div><div class=""><br class=""></div><div class=""><div class=""><div class=""><div class="" style="word-wrap: break-word;"><div class=""><div class="" style="margin: 0px; font-size: 12px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);"><span class="Apple-tab-span" style="white-space: pre;">        </span>XCTAssertEqual(row, [<span class="colour" style="color: rgb(209, 47, 27);">"a"</span>:&nbsp;<span class="colour" style="color: rgb(39, 42, 216);">1</span>,&nbsp;<span class="colour" style="color: rgb(209, 47, 27);">"a"</span>:&nbsp;<span class="colour" style="color: rgb(39, 42, 216);">2</span>])</div></div></div></div></div></div></div></div></blockquote><div class=""><br class=""></div><div class="">That’s great! In this case you aren’t using the DictionaryLiteral type, but a “dictionary literal”, which no one is suggesting we remove.</div></div></div></blockquote><div><br class=""></div><div>You're right ! I was almost sure that&nbsp;ExpressibleByDictionaryLiteral initializer would eat a DictionaryLiteral, but it doesn't!</div><div><br class=""></div><div><span class="Apple-tab-span" style="white-space:pre">        </span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255); color: rgb(129, 53, 160);" class="">extension</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class=""> </span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255); color: rgb(32, 128, 159);" class="">Row</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class=""> : </span><span style="color: rgb(60, 89, 167); font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class="">ExpressibleByDictionaryLiteral</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class=""> {</span></div><div><span class="Apple-tab-span" style="white-space:pre">                </span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255); color: rgb(129, 53, 160);" class="">init</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class="">(dictionaryLiteral elements: (</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255); color: rgb(60, 89, 167);" class="">String</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class="">, </span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255); color: rgb(32, 128, 159);" class="">DatabaseValueConvertible</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class="">?)...)&nbsp;</span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class="">{ ... }</span></div><div><span class="Apple-tab-span" style="white-space: pre;">        </span><span style="font-family: Menlo; font-size: 12px; background-color: rgb(255, 255, 255);" class="">}</span></div><div><br class=""></div><div>This code has been written too long ago. I have been mislead, I'd like to apologize.</div><div class=""><br class=""></div><blockquote type="cite" class=""><div class=""><div style="font-family: Helvetica; font-size: 14px; 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; -webkit-text-stroke-width: 0px;" class=""><div class="">If I’m understanding what you wrote, this is another case where the terrible name is making it super hard to discuss what we’re talking about. “Dictionary literals” and the ExpressibleByDictionaryLiteral protocol are safe!</div></div></div></blockquote><br class=""></div><div>Yes, I have been bitten hard by the names! Time for bikeshedding indeed :-)</div><div><br class=""></div><div>Gwendal</div><div><br class=""></div></body></html>