I would assume the error is correct, because if we ban reordering than labeled 
tuple types will become incompatible if the labels are swapped, remember the 
strict order or labels.



-- 
Adrian Zubarev
Sent with Airmail

Am 5. Mai 2017 um 12:08:59, David Hart via swift-evolution 
(swift-evolution@swift.org) schrieb:



On 5 May 2017, at 10:59, Xiaodi Wu via swift-evolution 
<swift-evolution@swift.org> wrote:

On Fri, May 5, 2017 at 03:11 André Videla <andre.vid...@gmail.com> wrote:

Just to make sure:

let pair = (x: 3, y: 5)
Let swapped: (y: Int, x: Int) = pair

Error.

Why error here? In this case. It's not a label but he type.

Let (y: x1, x: y1) = pair

Error.

Let (x: x2, y: y2) = pair

With the revised pitch that no longer prohibits all labels, x2 is 3 and y2 is 
5. In the original version, error.

Let (x3, y3) = pair

x3 is 3 and y3 is 5.

After the change, What do (x_n, y_n) print and Which assignments are errors?

Andre Videla 

On 5 May 2017, at 09:31, Xiaodi Wu via swift-evolution 
<swift-evolution@swift.org> wrote:

On Fri, May 5, 2017 at 2:28 AM, Adrian Zubarev 
<adrian.zuba...@devandartist.com> wrote:
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.

// 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   
Labels elsewhere are a different story and I do support the cosmetic addition 
Chris Lattner sketched out here: 
https://lists.swift.org/pipermail/swift-evolution-announce/2016-July/000233.html

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

Plus I don’t see this to create an inconsistent in Swift, because as I already 
said, labels in tuple destructuring are useless.

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.
_______________________________________________

swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to