> On Nov 17, 2016, at 2:54 AM, Tino Heth via swift-evolution > <[email protected]> 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 > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
