<div dir="ltr">Hi All,<div><br></div><div>This is an inconsistency I&#39;ve come across a few times now so I thought I would detail exactly what the inconsistency is and how I think it should work. This is a bug thats been reported on JIRA, but when commenting on the issue Doug Gregor pointed out that this should be a proposal rather than a bug report.</div><div><br></div><div>Simply put (or as simply as I can), when inheriting from a class that conforms to a protocol that has a protocol extension, not all methods defined in that protocol are implemented by the class as it relies on the protocol extension implementations. This is fine until that class is subclassed tries to add it&#39;s own implementation of the methods defined in the protocol even if they aren&#39;t implemented in it&#39;s parent class. Once this situation arrises some problems happen if the parent class calls any of the methods defined in the protocol but not implemented by itself, but by it&#39;s subclass. If the methods are called externally then everything is fine, but if the methods are called internally by the parent class, the subclasses implementations are ignored and the protocol extension implementation is used instead.</div><div><br></div><div>It&#39;s a long winded problem to describe which is why I have added a code sample to my draft proposal to help illustrate the problem better. If anyone has any tips on how to simplify the description of the problem then I&#39;m all ears!</div><div><br></div><div><a href="https://gist.github.com/dlbuckley/1858a7c0b5c027248fe16171d23ba01d">https://gist.github.com/dlbuckley/1858a7c0b5c027248fe16171d23ba01d</a><br></div><div><br></div><div>I believe that this proposal should bring a more consistent and expected behaviour to code when this situation arrises. Let me know if you believe the same or disagree.</div><div><br></div><div>Thanks,</div><div><br></div><div>Dale</div><div><br></div><div><br></div></div>