<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"><<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></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 <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br>
<br>
>> On Apr 22, 2016, at 8:02 PM, Douglas Gregor via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br>
>><br>
>><br>
>><br>
>> Sent from my iPhone<br>
><br>
>><br>
>>> On Apr 22, 2016, at 5:56 PM, Xiaodi Wu <<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>> wrote:<br>
>>><br>
>>> Not an expert on Obj-C compatibility in Swift by any means, but this<br>
>>> reads like it's largely a change of nomenclature. To me, though,<br>
>>> `objcoptional` reads exceedingly poorly. Why not emphasize the Obj-C<br>
>>> compatibility angle by requiring the `@objc` attribute to precede each<br>
>>> use of `optional`? (In other words, effectively rename `optional` to<br>
>>> `@objc optional`.)<br>
>><br>
>> That is a great idea.<br>
><br>
> Doesn’t this have the same problem as the current (Swift 1/2)<br>
> implementation? People will continue to believe that it is a bug that<br>
> you must specify @objc.<br>
<br>
</span>Doesn't that argue for @objc(optional)<br>
<br>
?<br></blockquote><div><br></div><div>That was my first instinct as well, but I'm persuaded by Doug's points on the issue, which I'll just quote below because he puts it much better than I could:</div><div>* "<span style="font-size:12.8px">It shouldn't be an attribute because it changes the type signature of references to the requirement."</span></div><div><span style="font-size:12.8px">* "</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."</span></div><div> </div></div></div></div>