[swift-evolution] [PROPOSAL]Return subclass type to a protocol where a superclass is defined without the need for associatedtype

Yogev Sitton yogev.sitton at gmail.com
Sun Apr 17 18:55:53 CDT 2016


In what way?





On Sun, Apr 17, 2016 at 3:53 PM -0700, "Howard Lovatt" <howard.lovatt at gmail.com> wrote:










I think this should be part of completing generics.

On Sunday, 17 April 2016, Yogev Sitton via swift-evolution <swift-evolution at swift.org> wrote:
I have a class that is conforming to a protocol with a method that requires a specific return type.In case I want to return a subclass of the return type I am forced to use an associatedtype that feels like a hack.
As an example:
protocol MyShapeProtocol {    func make() -> Shape?}
class Circle : Shape {}
class CircleMaker : MyShapeProtocol{    func make() -> Circle? {        return Circle()    }}
This will not work.For that to work I’ll need to use toe associatedtype “hack”:
protocol MyShapeProtocol {    associatedtype ShapeReturnType : Shape    func make() -> ShapeReturnType?}
class Circle : Shape {}
class CircleMaker : MyShapeProtocol{    func make() -> Circle? {        return Circle()    }}
Is there a real value in adding the associatedtype line?

-- 
-- Howard.






-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160417/bb8feda9/attachment.html>


More information about the swift-evolution mailing list