> On 8 May 2017, at 09:09, Xiaodi Wu <xiaodi...@gmail.com> wrote:
> 
> On Mon, May 8, 2017 at 12:16 AM, David Hart <da...@hartbit.com 
> <mailto:da...@hartbit.com>> wrote:
> 
> On 7 May 2017, at 00:21, Xiaodi Wu via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> 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.
> 
> Highly disagree. Consistency teaches us that variables can come after a colon.

Correct. I meant to say that sentence in the context of the LHS of an 
assignment. Can’t we even agree that the syntax is misleading?

> ```
> func foo(bar: Int, baz: Int) {
>   print(bar, baz)
> }
> 
> func foo(bar: Bool, baz: Bool) {
>   print(bar, baz)
> }
> 
> let x = 42
> let y = 43
> foo(bar: x, baz: y)
> // x and y are variables, and they come after the colon.
> // We don't allow users to write `foo(bar x: Int, baz y: Int)`,
> // even when there are overloads.
> ```
> 
> There is nothing inconsistent about this part of the language.
> 
> 

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

Reply via email to