<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Then +1 for the revised pitch. I strongly believe this is a strict improvement over the current situation.</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">&nbsp;(y: Int, x: Int) = (x: 1, y:2) really looks like a type error</div><div id="AppleMailSignature"><br>Andre Videla&nbsp;</div><div><br>On 5 May 2017, at 10:59, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div>On Fri, May 5, 2017 at 03:11 André Videla &lt;<a href="mailto:andre.videla@gmail.com">andre.videla@gmail.com</a>&gt; wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span></span></div><div><div><span></span></div><div><div><br></div><div id="m_1279692938464163656AppleMailSignature">Just to make sure:</div><div id="m_1279692938464163656AppleMailSignature"><br></div><div id="m_1279692938464163656AppleMailSignature">let pair = (x: 3, y: 5)</div><div id="m_1279692938464163656AppleMailSignature">Let swapped: (y: Int, x: Int) = pair</div></div></div></div></blockquote><div><br></div><div>Error.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div><div id="m_1279692938464163656AppleMailSignature"></div><div id="m_1279692938464163656AppleMailSignature">Let (y: x1, x: y1) = pair</div></div></div></div></blockquote><div><br></div><div>Error.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div><div id="m_1279692938464163656AppleMailSignature"></div><div id="m_1279692938464163656AppleMailSignature">Let (x: x2, y: y2) = pair</div></div></div></div></blockquote><div><br></div><div>With the revised pitch that no longer prohibits all labels, x2 is 3 and y2 is 5. In the original version, error.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div><div id="m_1279692938464163656AppleMailSignature"></div><div id="m_1279692938464163656AppleMailSignature">Let (x3, y3) = pair</div></div></div></div></blockquote><div><br></div><div>x3 is 3 and y3 is 5.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div><div id="m_1279692938464163656AppleMailSignature">After the change, What do (x_n, y_n) print and Which assignments are errors?</div><div id="m_1279692938464163656AppleMailSignature"><br>Andre Videla&nbsp;</div></div></div></div><div><div><div><div><br>On 5 May 2017, at 09:31, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div>On Fri, May 5, 2017 at 2:28 AM, Adrian Zubarev <span>&lt;<a href="mailto:adrian.zubarev@devandartist.com" target="_blank">adrian.zubarev@devandartist.com</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"><div style="word-wrap:break-word"><div class="m_1279692938464163656m_-5555134904584300890bloop_markdown"><p>I’m not arguing to remove all labels in Swift. Labels are great, this is a fact for sure. The point I was trying to make is that labels in tuples how either a meaning or not at all.</p>

<pre><code class="m_1279692938464163656m_-5555134904584300890swift">// This is a shortcut for the tuple type `(x: Int, y: Int)`
let foo = (x: 0, y: 0)  

// In this case the labels are only used for description,  
// they do not server any benefit here are most likely redundant
let (x: x, y: y) = foo  
</code></pre>

<p>Labels elsewhere are a different story and I do support the cosmetic addition Chris Lattner sketched out here: <a href="https://lists.swift.org/pipermail/swift-evolution-announce/2016-July/000233.html" target="_blank">https://lists.swift.org/pipermail/swift-evolution-announce/2016-July/000233.html</a></p>

<p>However this is about closures and not tuples, I don’t think this would anyhow affect the removal of labels in tuple destructuring.</p>

<p>Plus I don’t see this to create an inconsistent in Swift, because as I already said, labels in tuple destructuring are useless.</p></div></div></blockquote><div>How come? I just illustrated their use. They help humans write correct code by allowing the compiler to check an assertion that the human knows which labels go with which positions in the tuple.</div></div></div></div>
</div></blockquote></div></div></div><div><div><div><blockquote type="cite"><div><span>_______________________________________________</span></div></blockquote></div></div></div><div><div><div><blockquote type="cite"><div><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></div></div></div></blockquote></div></div>
</div></blockquote></body></html>