<div dir="ltr">On Fri, May 5, 2017 at 12:42 AM, Adrian Zubarev 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"><div style="word-wrap:break-word"><div class="m_-1319762173201981654bloop_markdown"><p>Okay now I see where this is going. So basically you want to mirror the behavior of function parameters into tuples.</p>

<p>You might want to be a little bit more explicit on types in your proposal to better understand the so called ‘tuple shuffle’.</p>

<pre><code class="m_-1319762173201981654swift">let a: (x: Int, y: Int) = (x: 1, y: 2)
var b: (y: Int, x: Int) = a
a.x == b.x
a.y == b.y
</code></pre>

<p>Label swap (tuple shuffle) while destructuring:</p>

<pre><code class="m_-1319762173201981654swift">let tuple: (first: Int, second: (x: Int, y: Int)) = (first: 0, second: (x: 1, y: 2))

let (first: a, second: (x: b, y: c)): (first: Int, second: (x: Int, y: Int)) = tuple // fine, unaffected

let (second: (x: b, y: c), first: a): (second: (x: Int, y: Int), first: Int) = tuple // shuffle =&gt; error</code></pre></div></div></blockquote><div><br></div><div>No, I thought this was what Robert was proposing, but he is proposing the elimination of all labels in tuple patterns. Your second example would be banned.</div><div><br></div></div></div></div>