Hi guys, 

I’m either missing a subtlety in regards to closures or I found a bug with the 
type inference system in Xcode 8 Beta 6. Thought I’d run it by you.

I’m trying to use Data’s method withUnsafeBytes(_:). It’s declared as:


func withUnsafeBytes<ResultType, ContentType>(_ body: 
(UnsafePointer<ContentType>) throws -> ResultType) rethrows -> ResultType

The Swift Language book states that closure syntax uses the following form:


{ (parameters) -> returntype in
    statements
}

So, at the most basic implementation, I tried the following:

let tryThis = items.withUnsafeBytes {
    (bytes) -> Int in
    
    return 1
}

And I get the error Declared closure result 'Int' is incompatible with 
contextual type ‘ResultType’.

Xcode suggests I change Int to ResultType, but that just gives me the error 
that I’m using an undeclared type. 

Am I getting the syntax wrong or Xcode getting confused?

Thanks a lot. 

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

Reply via email to