Well I’m clearly against this, it doesn’t hurt to use some more paeans inside a closure to tell the compiler if you want to destructure a tuple or use a single argument for the whole tuple.
-- Adrian Zubarev Sent with Airmail Am 7. Juni 2017 um 12:31:47, Susan Cheng ([email protected]) schrieb: `((Int, Int)) -> Void` will be same type as `(Int, Int) -> Void` 2017-06-07 18:09 GMT+08:00 Adrian Zubarev <[email protected]>: Keep in mind there is also SE–0111 cometary which promises sugar for parameter labels for closures: // ** let foo(tuple:): ((Int, Int)) -> Void // Sugar for ** let foo: (tuple: (Int, Int)) -> Void What will happen if you’d always flatten here? -- Adrian Zubarev Sent with Airmail Am 7. Juni 2017 um 12:03:08, Adrian Zubarev ([email protected]) schrieb: 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 } That’s a correct error: let fn3: (Int, Int) -> Void = { _ in } This should be allowed, because we might want to work with the whole tuple and not a desctructured elements only: let fn4: ((Int, Int)) -> Void = { tuple in } -- Adrian Zubarev Sent with Airmail
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
