[swift-evolution] [PROPOSAL]Return subclass type to a protocol	where a superclass is defined without the need for associatedtype
    Gwendal Roué 
    gwendal.roue at gmail.com
       
    Mon Apr 18 04:48:59 CDT 2016
    
    
  
Hello Yogev,
I think your question belongs to the swift-users mailing list (quoting https://lists.swift.org/mailman/listinfo):
- swift-evolution: Discussion of the evolution of Swift, including new language features and new APIs.
- swift-users: For users to get help with or ask questions about Swift or its related tools
Gwendal Roué
> Le 17 avr. 2016 à 10:52, Yogev Sitton via swift-evolution <swift-evolution at swift.org> a écrit :
> 
> 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?
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
    
    
More information about the swift-evolution
mailing list