> On Jul 18, 2016, at 12:06 PM, Károly Lőrentey via swift-evolution 
> <swift-evolution@swift.org> 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.

-- 
Brent Royal-Gordon
Architechies

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to