> On 22 Feb 2017, at 21:59, Slava Pestov via swift-users 
> <swift-users@swift.org> wrote:
> 
> When a class conforms to a protocol and a requirement is fulfilled by a 
> method in an extension, the class does not get a vtable entry for the 
> extension method. So it cannot be overridden in a subclass — there’s nothing 
> to dynamically dispatch here. We plan on addressing this as part of ABI 
> stability.

What do you mean by “address” this? Force the vtable entry?

> Slava
> 
> 
>> On Feb 22, 2017, at 9:39 AM, David Hart via swift-users 
>> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
>> 
>> In the following piece of code, can somebody explain the last result? Why 
>> the break in consistency? Is this a bug?
>> 
>> protocol P {
>>      func foo() -> String
>> }
>> 
>> extension P {
>>      func foo() -> String { return "P" }
>> }
>> 
>> class A : P {
>>      func foo() -> String { return "A" }
>> }
>> 
>> class B : P {}
>> class C : B {
>>      func foo() -> String { return "C" }
>> }
>> 
>> A().foo()          // A
>> (A() as P).foo()   // A
>> B().foo()          // P
>> (B() as P).foo()   // P
>> C().foo()          // C
>> (C() as P).foo()   // P
>> _______________________________________________
>> swift-users mailing list
>> swift-users@swift.org <mailto:swift-users@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

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

Reply via email to