[swift-evolution] Add code to super methods.
Michael Ilseman
milseman at apple.com
Thu Nov 24 17:09:34 CST 2016
> On Nov 17, 2016, at 2:54 AM, Tino Heth via swift-evolution <swift-evolution at swift.org> wrote:
>
> An equivalent of "NS_REQUIRES_SUPER" (hopefully with a better name ;-) has been requested several times, but never got the momentum it deserves.
> Considering the current confusion (especially in UIKit), it would be really nice to have some help from the compiler, and I wonder how composition and protocols would be helpful here at all.
>
As an intermediary measure, this seems like an interesting QoI improvement for the compiler: warn when super.foo() is not called in the overridden method. This is probably best done through a Clang-side attribute to begin with (as UIKit and others are the biggest bang for the buck for this), and of course some kind of NS_* convenience macro could be added.
What are your thoughts on this?
Just to throw out a strawman:
// Warn if override doesn’t begin with “super.foo()”
__attribute(swift_requires_super_call_at_begin)
// Warn if override doesn’t end with “super.foo()”
__attribute(swift_requires_super_call_at_end)
> I guess the problem is that there are to many options for this feature without an obvious favorite: Not only for the keywords, but also for the exact semantic.
>
> Additionally, there are imho already to many access levels (private, fileprivate, internal, public, extendable?, open), so I hope we'll someday find a solution that is powerful enough to replace the special willSet/didSet treatment for properties as well.
>
> So unless somebody has a real flash of genius, I guess it's better to delay discussion until there is a chance for new proposals to be accepted.
>
> Tino
> _______________________________________________
> 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/20161124/e22fc2d0/attachment.html>
More information about the swift-evolution
mailing list