Hi Gwendal,

I’m actually trying to start a discussion that will change the current behavior 
of the language.
That’s why I posted this on the swift-evolution mailing list and not 
swift-users.

Yogev

> On Apr 18, 2016, at 12:48 PM, Gwendal Roué <[email protected]> wrote:
> 
> 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 
>> <[email protected]> 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
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to