> On 7 May 2017, at 00:21, Xiaodi Wu via swift-evolution 
> <[email protected]> wrote:
> 
> To which human would it be misleading?
> 
> To the writer? No, because the compiler will warn you right away. By the time 
> you're done with writing the first line, it'll warn you that Int and Double 
> are unused variables. And if you try to use x and y, you get an error.
> 
> To the reader? Only if the writer knowingly wrote this misleading code. In 
> other words, it's a nice puzzle, but no reader will encounter this in 
> real-world code, unless they're being tormented by the writer on purpose.

IMHO, the fact that the compiler warns you does no change the fact that it's a 
very confusing part of the language. It should not be an excuse for fixing it. 
Consistency teaches us to expect a type after a colon.

>> On Sat, May 6, 2017 at 16:28 Brent Royal-Gordon <[email protected]> 
>> wrote:
>> > On May 5, 2017, at 11:06 PM, Xiaodi Wu <[email protected]> wrote:
>> >
>> > The identifier after a colon is *never* a type in any pattern matching, 
>> > and there's no need of which I'm aware to support type annotations in 
>> > pattern matching. We put colons after labels, and the current syntax is 
>> > perfectly consistent here. What is the defect you're trying to cure?
>> 
>> The defect underlying this proposal: `let (x: Int, y: Double)` looks like 
>> it's declaring `x` and `y` of types `Int` and `Double`, but it's actually 
>> declaring `Int` and `Double` and binding them to `x` and `y`. Your code's 
>> meaning is perfectly unambiguous to the compiler, of course, but it's 
>> misleading to the human.
>> 
>> --
>> Brent Royal-Gordon
>> Architechies
>> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to