[swift-evolution] IUO in Swift 3.0

David Hart david at hartbit.com
Tue Jun 21 15:06:51 CDT 2016


Just saw this article about IUO in Swift 3.0:

https://www.bignerdranch.com/blog/wwdc-2016-increased-safety-in-swift-3/

I was surprised that the IUO type still exists. From what I understood, SE-0054 <https://github.com/apple/swift-evolution/blob/master/proposals/0054-abolish-iuo.md> gives a clear example that:

func f() -> Int! { return 3 } // f: () -> Int?, has IUO attribute
// ...
let x3: Int! = f() // succeeds; x3: Int? = .some(3), has IUO attribute
// ...
func g() -> Int! { return nil } // f: () -> Int?, has IUO attribute
// ...
let y3: Int! = g() // succeeds; y3: Int? = .none, has IUO attribute

x3 and y3 should be a of type Int? but trying those out in Xcode 8’s beta 1 playground show that they are still of type Int!. Did I miss something?

David.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160621/63135f65/attachment.html>


More information about the swift-evolution mailing list