<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 25, 2016 at 5:08 PM, Dave Abrahams via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class=""><br>
on Sun Apr 24 2016, Chris Lattner &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
<br>
&gt;&gt; On Apr 22, 2016, at 8:02 PM, Douglas Gregor via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Sent from my iPhone<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; On Apr 22, 2016, at 5:56 PM, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Not an expert on Obj-C compatibility in Swift by any means, but this<br>
&gt;&gt;&gt; reads like it&#39;s largely a change of nomenclature. To me, though,<br>
&gt;&gt;&gt; `objcoptional` reads exceedingly poorly. Why not emphasize the Obj-C<br>
&gt;&gt;&gt; compatibility angle by requiring the `@objc` attribute to precede each<br>
&gt;&gt;&gt; use of `optional`? (In other words, effectively rename `optional` to<br>
&gt;&gt;&gt; `@objc optional`.)<br>
&gt;&gt;<br>
&gt;&gt; That is a great idea.<br>
&gt;<br>
&gt; Doesn’t this have the same problem as the current (Swift 1/2)<br>
&gt; implementation?  People will continue to believe that it is a bug that<br>
&gt; you must specify @objc.<br>
<br>
</span>Doesn&#39;t that argue for @objc(optional)<br>
<br>
?<br></blockquote><div><br></div><div>That was my first instinct as well, but I&#39;m persuaded by Doug&#39;s points on the issue, which I&#39;ll just quote below because he puts it much better than I could:</div><div>* &quot;<span style="font-size:12.8px">It shouldn&#39;t be an attribute because it changes the type signature of references to the requirement.&quot;</span></div><div><span style="font-size:12.8px">* &quot;</span><span style="font-family:Palatino-Roman;font-size:14px">Do remember that @objc(something) already has a meaning: it gives the Objective-C name “something” to the entity that the @objc(something) describes.&quot;</span></div><div> </div></div></div></div>