swift 4 compiler error tuple parameter does not support destructing


(CK TUNG) #1

Many thanks. It works in Swift 4 Xcode 9 beta2.

···

On Jun 30, 2017, at 11:20 AM, Daniel Dunbar <daniel_dunbar@apple.com> wrote:

This is due to SE-0110:
https://github.com/apple/swift-evolution/blob/master/proposals/0110-distingish-single-tuple-arg.md
but see the additional commentary:
https://lists.swift.org/pipermail/swift-evolution-announce/2017-June/000386.html

For now you can rewrite it as:

let filenamelength = bytes
  .enumerated()
  .map {
    let (index, element) = $0
    return Int(Double(element) * pow(256,Double(index))) }
  .reduce(0, +)

- Daniel

On Jun 29, 2017, at 8:08 PM, CK TUNG via swift-users <swift-users@swift.org> wrote:
I have the following code snippet that compile OK in swift 3

        bytes = Array\(UnsafeBufferPointer\(\.\.\.\.\)\)
        let filenamelength = bytes\[\(i\+28\)\.\.&lt;\(i\+28\+2\)\]
            \.enumerated\(\)
            \.map \{ \(index, element\) in return Int\(Double\(element\) \* pow\(256,Double\(index\)\)\) \}
            \.reduce\(0, \+\)

I have the following code snippet that compile OK in swift 3
In Swift 4 (Xcode beta1) it compiled with error something like "... too complex"
Now in Swift 4 Xocde beta2 the error is tuple parameter element does not support destructing
what has been changed in swift 4 ?

Please help how to solve it ?

Thanks

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