[swift-evolution] Proposal: Add @requires_super attribute

T.J. Usiyan griotspeak at gmail.com
Wed Dec 16 20:28:20 CST 2015


one solution is @requires_super(first|last). This cuts out "call me in the
middle" but that is a worthwhile trade, in my opinion.

On Wed, Dec 16, 2015 at 9:22 PM, Javier Soto via swift-evolution <
swift-evolution at swift.org> wrote:

> I'm not a fan of this feature because it encourages a type of API design
> that's really hard to ensure that it's used correctly. The biggest problem
> is the fact that often when a class expects or allows a method to be
> overriden, and super needs to be called, it expects the call to happen in a
> particular order: either before of after the implementation from the
> subclass.
>
> So yes, this is missing from Obj-C, yes, this is important because UIKit,
> but going forward my feeling is that a language without this feature is a
> language that will force you to think about an alternative way to implement
> an API without this, and that'll probably be less error-prone.
> On Wed, Dec 16, 2015 at 3:03 PM Tino Heth via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>> Default behavior would require something like "unrequire" which seems odd.
>>
>> the keyword for requires_super is so odd, it doesn't even fit in a single
>> word! ;-)
>> I think it is much easer to find a word for something that can be
>> replaced completely than for "you have to call the implementation of the
>> parent class"
>>
>> Also this would break a lot of existing code and migration can't be done
>> automatically.
>>
>> Two parts:
>> What is a lot? I really don't think calling super hurts in many places.
>> Why shouldn't it be possible to migrate automatically? It might get
>> complicated for compiled libs, but definitely possible.
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>>
> --
> Javier Soto
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151216/ad1db401/attachment.html>


More information about the swift-evolution mailing list