<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I’m referring you to Ross O’Brien’s post:</div><div class=""><span style="font-family: HelveticaNeue;" class=""><i class="">As of Swift 2.2, if a variable has a closure type of e.g. () -&gt; Shape, a closure of type () -&gt; Circle would be considered a match.&nbsp; If a class implements 'func make() -&gt; Shape', a subclass implementing 'func make() -&gt; Circle' has to override. However, if a protocol requires a 'func make() -&gt; Shape', a type implementing 'func make() -&gt; Circle' isn't considered to be conforming. That does seem strange.</i></span></div><div class=""><br class=""></div><div class=""><span style="font-family: HelveticaNeue;" class="">Protocols behaves differently than closures and classes and I think they should behave the same.</span></div><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 18, 2016, at 1:00 PM, Gwendal Roué &lt;<a href="mailto:gwendal.roue@gmail.com" class="">gwendal.roue@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class=""><blockquote type="cite" class="">Le 18 avr. 2016 à 11:53, Yogev Sitton &lt;<a href="mailto:yogev.sitton@gmail.com" class="">yogev.sitton@gmail.com</a>&gt; a écrit :<br class=""><br class="">Hi Gwendal,<br class=""><br class="">I’m actually trying to start a discussion that will change the current behavior of the language.<br class="">That’s why I posted this on the swift-evolution mailing list and not swift-users.<br class=""></blockquote><br class="">OK Yogev. But what is the problem actually? If some of your code does not do what you want, is it because of the language, or is it because you still have to learn something about the language?<br class=""><br class="">Associated types are not a "hack", they are a feature. Maybe you are not using it properly, you see?<br class=""><br class="">If you would tell how those MyShapeProtocol objects are used, it may get clearer.<br class=""><br class="">Gwendal<br class=""><br class=""></div></div></blockquote></div><br class=""></body></html>