> 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