[swift-evolution] [swift-evolution-announce] [Accepted] SE-0140: Bridge Optional As Its Payload Or NSNull

Greg Parker gparker at apple.com
Mon Sep 12 18:48:20 CDT 2016


> On Sep 12, 2016, at 3:39 PM, Douglas Gregor <dgregor at apple.com> wrote:
> 
> As an amendment to SE-0140, Swift will produce a warning when an optional value is converted to a value of type Any, e.g.,
> 
> 	MyClass().doSomething(stringOpt)  // warning: optional value of type ‘String?’ is converted to an ‘Any’
> 					  // note: use ‘!’ to force-unwrap the optional
> 					  // note: use ‘??’ to provide a default value if the optional is nil
> 					  // note: use ‘as Any’ to silence this warning
> 
> Such a warning will address most accidental injections of optional values into Any, and the core team felt that this addresses accidental boxing of optional values better than leaving the opaque object types to fail fast in Objective-C code that inspects them (e.g., see this message <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160905/026961.html> for a negative review partly on these grounds).

Is there a recommended pattern for defining a callee that actually wants to accept anything including optionals with no warning for the caller? 


-- 
Greg Parker     gparker at apple.com <mailto:gparker at apple.com>     Runtime Wrangler


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160912/1aef64ec/attachment.html>


More information about the swift-evolution mailing list