On 2016-07-19 00:46:21 +0000, Brent Royal-Gordon via swift-evolution said:


On Jul 18, 2016, at 12:06 PM, Károly Lőrentey via swift-evolution <[email protected]> wrote:

Introducing "dynamic" or some other keyword to mark explicitly methods
that should be overriden is just the same "open" with sealed methods
by default would mean for public methods so it makes no difference to
me.

"dynamic" is already in the language. It changes method dispatch to use Objective-C style message passing, enabling advanced techniques based on the dynamic runtime, such as method swizzling or KVO. Since it already exists, I'm not arguing for its introduction; I merely want it integrated into the proposal, in order to keep the language coherent.

I would prefer not to ascribe overridability semantics to `dynamic`. I see `dynamic` as a hint to the compiler that something *outside of normal, safe Swift code* may cause this entity's implementation to change. A `dynamic final` member is a perfectly coherent concept: Formally, nothing is allowed to override this member, but in practice, something may change it behind the compiler's back.

"dynamic final" is prohibited by the current version of compiler. Can you provide an example of a problem that would be solved by allowing it?

--
Károly
@lorentey


_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to