> 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

Reply via email to