<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=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 01.05.2016 um 23:34 schrieb Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com" class="">xiaodi.wu@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class="">The point is pretty much moot. In Erica's draft proposal, keywords are required in any Swift code that hasn't been compiled in order to indicate conformance. Under that scheme, it might be useful to be able to express something like what Erica asked about in this email thread. I understood it to be a factual question--is it or is it not possible to exclude one particular conforming type from an extension of a protocol? The answer seems to be that the it is not possible in current Swift syntax, which is fine.<br class=""><br class="">I understand that you are saying that it isn't currently necessary to use such a feature for retroactive modeling and that it might be possible to write an alternative proposal for keywords like `required` in which it continues not to be necessary. I don't think there's any disagreement here.<br class=""></div></blockquote><div><br class=""></div>Ok :-)</div><div><br class=""></div><div>-Thorsten</div><div><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><div dir="ltr" class="">On Sun, May 1, 2016 at 16:24 Thorsten Seitz <<a href="mailto:tseitz42@icloud.com" class="">tseitz42@icloud.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Am 01.05.2016 um 03:03 schrieb Erica Sadun <<a href="mailto:erica@ericasadun.com" target="_blank" class="">erica@ericasadun.com</a>>:</div><br class=""><div class=""><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Apr 29, 2016, at 3:18 PM, Thorsten Seitz <<a href="mailto:tseitz42@icloud.com" target="_blank" class="">tseitz42@icloud.com</a>> wrote:</div><br class=""><div class=""><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Am 29.04.2016 um 19:51 schrieb Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com" target="_blank" class="">xiaodi.wu@gmail.com</a>>:</div><br class=""><div class="">Yes, certainly this works today. The motivation for Erica's question is that this would not work without modifying the third-party code if keywords were required to indicate implementation of protocol requirements.<br class=""></div></blockquote><div class=""><br class=""></div></div><div class="">If I understood the motivation correctly, the requirements should protect against typos where I planned to *replace* a method but due to a typo instead created a new method and inherited the default (or superclass) implementation.</div></div></div></blockquote></div><br class=""><div class="">extension A where !x:B {<br class=""> ....</div><div class="">}</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">then conforming a type to A and B would exclude the type from inheriting the extension.</div></div></div></blockquote><br class=""></div></div><div style="word-wrap:break-word" class=""><div class="">I still don’t see the need for that. As my code example demonstrated an extension will not override an existing method in a conforming type and my other mail demonstrated that it is not necessary to have „required“ keywords in existing code which is extended.</div><div class=""><br class=""></div><div class="">Maybe I still haven’t understood the use case you are trying to solve. In that case I’d appreciate if you would give a complete example that shows what should happen why.</div></div><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><div class="">-Thorsten</div><br class=""></div></blockquote></div>
</div></blockquote></div><br class=""></body></html>