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
https://lists.swift.org/mailman/listinfo/swift-users