<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="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="">[Proposal:&nbsp;<a href="https://github.com/jrose-apple/swift-evolution/blob/overridable-members-in-extensions/proposals/nnnn-overridable-" class="">https://github.com/jrose-apple/swift-evolution/blob/overridable-members-in-extensions/proposals/nnnn-overridable-</a>members-in-extensions.md]</div></div><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div></div></div><div><blockquote type="cite" class=""><div class="">On 2016-02-19, at 18:16, Jordan Rose &lt;<a href="mailto:jordan_rose@apple.com" class="">jordan_rose@apple.com</a>&gt; wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 19, 2016, at 2:23 , Marco Masser &lt;<a href="mailto:lists@duckcode.com" class="">lists@duckcode.com</a>&gt; wrote:</div><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div></div></div></blockquote></div></div></div></blockquote><blockquote type="cite" class=""><blockquote type="cite" class="">[…]</blockquote></blockquote><blockquote type="cite" class=""><blockquote type="cite" class=""><br class=""></blockquote></blockquote><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I hope this clears up my original answer. Either by getting the point across better, or by proving that I misinterpreted the proposal 🙃</div></div></div></blockquote><br class=""></div><div class="">Yes, sorry, the proposal doesn't quite do that, because of the new safety rule:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class="">"If an extension in module&nbsp;B&nbsp;is extending a class in module&nbsp;A, the extension may only override&nbsp;members added in module&nbsp;B."</div></div></blockquote><div class=""><br class=""></div><div class="">…by the same reasoning in my reply to Erica: allowing this would violate the "<a href="https://blogs.msdn.microsoft.com/oldnewthing/20050607-00/?p=35413/" class="">what if two modules did this?</a>" rule. <i class="">You</i>&nbsp;know that you've broken up your plain old app into multiple modules, and that no one else is going to extend the classes you defined there, but the compiler doesn't. (And moreover, it's not as easy to add overrides after the fact with Swift as it is in Objective-C.)</div><div class=""><br class=""></div><div class="">This proposal is more about adding new overridable members in extensions than it is about overriding existing methods.</div></div></div></blockquote></div><br class=""><div class="">Ah, I think I got it now. Sorry for going off into the weeds here. I’ll give the proposal and this thread a thorough read again and think about it some more.</div><div class=""><br class=""></div><div class="">Thank you for taking the time to explain this!</div><div class=""><br class=""></div><div class="">Marco</div></body></html>