<div dir="ltr"><div>Yesterday, it was pointed out that a variable name referring to a tuple cannot be used as a pattern.  I have noticed another sort of inconsistency in how tuples are treated when they are referenced by name:</div><div><br></div><div><div><font face="monospace, monospace">func f() -&gt; Int { return 5 }</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">let t = (&quot;a&quot;, f)</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">let _: (String, () throws -&gt; Int) = t  // type error</font></div><div><font face="monospace, monospace">let _: (String, () throws -&gt; Int) = (t.0, t.1)  // OK</font></div></div><div><br></div><div>This situation leads to a different sort of type error; however, the error seems equally unwarranted.  I can&#39;t see any good reason for a well-typed program to become ill-typed when `(t.0, t.1)` is replaced with `t` (assuming `t` is a pair).</div><div><br></div><div>Should I file a separate bug for the specific example above?</div><div><br></div><div>- Aaron</div></div>