[swift-users] Initializers

Jordan Rose jordan_rose at apple.com
Fri Jan 27 15:26:22 CST 2017


> On Jan 27, 2017, at 11:04, Slava Pestov via swift-users <swift-users at swift.org> wrote:
> 
>> 
>> On Jan 27, 2017, at 10:39 AM, tuuranton--- via swift-users <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
>> 
>> Yes, but why?
>> 
>> What's the rationale for this?
>> 
>> What would be so bad about allowing overriding a non-failable initializer with a failable initializer?
> 
> If the non-failable initializer witnesses a non-failable protocol requirement, and the subclass overrides it, what should be the runtime behavior if the subclass initializer returns nil? The caller won’t expect it, since the caller is calling a non-failable initializer.

This particular objection only applies to 'required' initializers, though.


> 
> For similar reasons, you cannot override a method that returns a non-optional value with a method returning an optional value.

Yes, this is true.

Jordan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170127/3244c1cf/attachment.html>


More information about the swift-users mailing list