[swift-evolution] [Draft] Abolish IUO type

Jed Lewison jed.lewison at icloud.com
Thu Mar 17 15:45:11 CDT 2016


> On Mar 17, 2016, at 12:16 AM, Chris Willmore via swift-evolution <swift-evolution at swift.org> wrote:
> 
> To run with the example above, emailTextField would have type UITextField? but, because it’s an IUO declaration, it would still be usable in contexts that required non-optional UITextField. What would change is that if you were to say, e.g.
> 
> let textField = controller.emailTextField
> 
> then textField would have type UITextField?. But you could still say
> 
> formView.addSubview(controller.emailTextField)

For this scenario, would you be able to implicitly force-unwrap when a non-optional is not required, like:

	controller.emailTextField.minimumFontSize = 12

Or would you have to say:

	controller.emailTextField?.minimumFontSize = 12

If the former, would fontSize be an Optional<CGFloat> or a CGFloat (non-optional)?

		let fontSize = controller.emailTextField.minimumFontSize

As a user, I’m not sure which I’d expect. Given the behavior of let textField = controller.emailTextField, it seems like i’d expect fontSize to be an Optional<CGFloat>. Then again, if I’m allowed to implicitly unwrap emailTextField, it also doesn’t make any sense for fontSize to be an Optional. (I’m assuming that there would not be a circumstance where the IUO-ableness of the value would be preserved.)

On a different note: As a general rule, I’m +1_000_000 on anything that makes IUO and force-unwrapping less common, so anything with the subject “Abolish IUO Type" makes me smile.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160317/cdce89fc/attachment.html>


More information about the swift-evolution mailing list