[swift-evolution] [Draft] Abolish IUO type

Chris Lattner clattner at apple.com
Wed Mar 16 22:39:56 CDT 2016


> On Mar 16, 2016, at 6:44 PM, Brent Royal-Gordon via swift-evolution <swift-evolution at swift.org> wrote:
> 
>> Let me play devil’s advocate: why not just get rid of implicit unwrapping entirely?
>> 
>> Apple’s Objective-C APIs have had plenty of time to be audited by now.
> 
> Two reasons:
> 
> 1. There are still a number of obscure Apple frameworks which have not been audited.
> 
> 2. Not all imported code comes from Apple frameworks. In particular, Linux is a whole new world of unaudited—and frankly, probably never-going-to-be-audited in large part—code. Each time Swift moves to a new platform, it will need implicit unwrapping again for a few years while the major libraries get audited. Burning your ships is only a good motivational strategy if you don't need to go anywhere else.

Right, I’d add:

3. IUO is important for existing C or ObjC codebases that want to move incrementally to Swift through the mix-and-match story.  It would be unfortunate to require a nullability audit of everything that came in before you’d have a useful API to work with.

-Chris


More information about the swift-evolution mailing list