[swift-evolution] Add code to super methods.
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()”
// Warn if override doesn’t end with “super.foo()”
> 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.
> swift-evolution mailing list
> swift-evolution at swift.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution