<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">+1, I really like the consistency. There&#39;s still one potential inconsistency that I think could be changed to improve things</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><h3 style="box-sizing:border-box;margin-top:24px;margin-bottom:16px;font-size:1.25em;line-height:1.25;color:rgb(51,51,51);font-family:-apple-system,blinkmacsystemfont,&quot;segoe ui&quot;,helvetica,arial,sans-serif,&quot;apple color emoji&quot;,&quot;segoe ui emoji&quot;,&quot;segoe ui symbol&quot;">Overriding of declarations introduced in class extensions<br></h3></div></blockquote><div>The inference of @objc inside extensions in Swift 3 is more than visibility to the Obj-c runtime, it also infers `dynamic`. This proposal appears to retain that, since `@objc` in an extension would allow override via message dispatch, where as `@objc` in a class declaration would only make the selector available to the obj-c runtime and retain table dispatch. <br></div><div><br></div><div>Does it make sense to remove the `dynamic` inference too? This would force all extension methods that can be overridden to be declared `@objc dynamic`. This clarifies the purpose of @objc since it only manages Obj-C visibility, and does not modify dispatch behavior. </div><div><br></div><div>I know this departs from my previous &quot;NSObject should stay dynamic&quot; argument earlier, but I was mostly arguing for consistency. Since it is clear that dynamic behavior should be opted into, I think forcing an additional `dynamic` keyword seems to make sense. Some developers may rely on this implicit `dynamic` behavior and encounter issues if a future version of swift allows overrides in extensions via table dispatch. </div><div><br></div><div><div class="gmail-m_7985662140621457769highlight gmail-m_7985662140621457769highlight-source-swift" style="color:rgb(51,51,51);box-sizing:border-box;margin-bottom:16px"><div style="font-size:16px;font-family:-apple-system,blinkmacsystemfont,&quot;segoe ui&quot;,helvetica,arial,sans-serif,&quot;apple color emoji&quot;,&quot;segoe ui emoji&quot;,&quot;segoe ui symbol&quot;"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small">Brian King</span></div></div></div></div></div></div>