<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="">On Apr 1, 2017, at 2:52 AM, Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com" class="">xiaodi.wu@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">You're right, I had to re-read the proposal a few times to grasp fully the intention there.</div><div class=""><br class=""></div><div class="">There was some discussion in the previous thread that this would be needed to infer @objc for implementations of @objc protocol requirements, but I see that this is inferred without any such annotation in this version of the proposal, which IMO is definitely reasonable.</div></div></blockquote><div><br class=""></div><div>Right. We’ll infer @objc when the declaration implements a requirement of an @objc protocol.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">It seems @objcMembers is really geared towards introspection. That finally clicked just now. Would you consider, for those of us like me who are a little slower on the uptake, making this even more explicit in the spelling? I'm thinking along the lines of `@introspection(objc)`, which nicely leaves open the possibility of future introspection facilities that don't require Objective-C. I get that "members" is meant to decribe what's going on that's different from plain @objc, but for me it took a while to grasp the answer to the question, "Why is this another annotation, or in other words, when would I use this instead?”</div></div></blockquote><div><br class=""></div><div>Introspection is a legitimate use case, but it’s not the only use case for @objcMembers, and it doesn’t really convey what the attribute does—it makes the members @objc.</div><div><br class=""></div><div><span class="Apple-tab-span" style="white-space: pre;">        </span>- Doug</div></div><div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class=""></div><div class=""><br class=""><div class="gmail_quote"><div class="">On Fri, Mar 31, 2017 at 13:30 Douglas Gregor <<a href="mailto:dgregor@apple.com" class="">dgregor@apple.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="gmail_msg"><div class="gmail_msg"><blockquote type="cite" class="gmail_msg"><div class="gmail_msg">On Mar 31, 2017, at 9:35 AM, Xiaodi Wu via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>> wrote:</div><br class="gmail_msg m_6504305661219535383Apple-interchange-newline"><div class="gmail_msg"><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="gmail_msg">On Fri, Mar 31, 2017 at 10:29 AM, Chris Lattner via swift-evolution<span class="gmail_msg m_6504305661219535383Apple-converted-space"> </span><span class="gmail_msg"><<a href="mailto:swift-evolution@swift.org" class="gmail_msg" target="_blank">swift-evolution@swift.org</a>></span><span class="gmail_msg m_6504305661219535383Apple-converted-space"> </span>wrote:<br class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class="gmail_msg"><div class="gmail_msg">Hello Swift community, </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">The second review of "SE-0160: Limiting @objc inference" begins now and runs through April 2, 2017. The proposal is available here:</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><span class="m_6504305661219535383m_-5068865771146890679Apple-tab-span gmail_msg" style="white-space:pre-wrap">        </span><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0160-objc-inference.md" class="gmail_msg" target="_blank">https://github.com/apple/swift-evolution/blob/master/proposals/0160-objc-inference.md</a></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution mailing list at:</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><span class="m_6504305661219535383m_-5068865771146890679Apple-tab-span gmail_msg" style="white-space:pre-wrap">        </span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="gmail_msg" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">or, if you would like to keep your feedback private, directly to the review manager. </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><b class="gmail_msg">What goes into a review?</b></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">* What is your evaluation of the proposal?</div></div></blockquote><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I do think this current iteration is an improvement. I have to say, though, that I prefer Doug Gregor's spelling of `@implicitobjc` over `@objcMembers`. It think the former explains the feature a little better and also happens to be subjectively nicer-looking.</div></div></div></div></div></blockquote><div class="gmail_msg"><br class="gmail_msg"></div></div></div><div style="word-wrap:break-word" class="gmail_msg"><div class="gmail_msg">I think @objcMembers is more precise: it doesn’t imply that the class itself is @objc, just that the members are @objc.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><span class="gmail_msg m_6504305661219535383Apple-tab-span" style="white-space:pre-wrap">        </span>- Doug</div><div class="gmail_msg"><br class="gmail_msg"></div></div></blockquote></div></div>
</div></blockquote></div><br class=""></body></html>