> Le 8 juin 2017 à 19:40, Brent Royal-Gordon via swift-evolution 
> <[email protected]> a écrit :
> 
>> On Jun 7, 2017, at 3:03 AM, Adrian Zubarev via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> Well please no:
>> 
>> 
>>  let fn2: ((Int, Int)) -> Void = { lhs, rhs in } 
>> 
>> Instead use destructuring sugar pitched by Chris Lattner on the other thread:
>> 
>> let fn2: ((Int, Int)) -> Void = { ((lhs, rhs)) in }
>> 
> 
> I think this suggestion is better than the status quo. I'm wondering, though, 
> if we should just drop the outer set of parentheses entirely, unless you're 
> also putting types on the parameters. That is, a closure of type `(Int, Int) 
> -> T` can look like this:
> 
>       { (x: Int, y: Int) in … }
> 
> Or it can look like this:
> 
>       { x, y in … }
> 
> But it *cannot* look like this:
> 
>       { (x, y) in … }
> 
> The `(x, y)` form can instead be a closure of a type like `((Int, Int)) -> 
> T`, which immediately destructures the tuple parameter into separate 
> constants.

I better understand your message. It does look good at first sight.

But... The full picture needs to be completed with closures of type `((Int, 
Int)) -> T` and `((lsh: Int, rhs: Int)) -> T`. Those are among the most 
*interesting* in the regressions they brought.

Will there be any forbidden syntax as well? What about unfitted signatures, 
which I talked just before?

Gwendal

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to