> On Dec 21, 2015, at 1:26 PM, Jordan Rose via swift-evolution > <swift-evolution@swift.org> wrote: > > >> On Dec 20, 2015, at 3:40 , Tino Heth via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> >>> Frankly, I think having `final` in the language at all is a mistake. While >>> I agree that we should prefer composition to inheritance*, declaring things >>> final is hubris. The only reasonable use case I've seen is for >>> optimization, but that smacks of developers serving the compiler rather >>> than the converse. Bringing an analog of NS_REQUIRES_SUPER to Swift would >>> be most welcome; that's as far as I'd go down the path of dictating >>> framework usage. >> I really like the direction this discussion has taken ;-): >> Is there any counter argument beside performance (which imho should always >> be seen under the aspect of premature optimization) that speaks against >> making NS_REQUIRES_SUPER the default behavior? > > I personally don't like this but I can't put my finger on why. Obviously > there are some things where you really don't need to call super (mostly > abstract methods), but you just said "default", which implies that we could > have an opt-out attribute. > > I will say, however, that making NS_REQUIRES_SUPER the default for > overridable methods is separable from deciding which methods are overridable > by default. Making sure the base method is called isn't really the same as > knowing the base method is all that's called.
Agree. There are at least four possibilities from most to least restrictive: * not overridable * overridable but requires a call to super in a specific location in the overriding method (i.e. the first or last line) * overridable but requires a call to super somewhere in the overriding method * overridable with no restrictions > > Jordan > > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution