<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">The review of <span class="" style="font-family: 'Helvetica Neue';">SE-0022 "Referencing the Objective-C selector of a method"</span> ran from January 18...23, 2016. The proposal has been <b class="">accepted</b><span class="">, with a modification to the proposed selector reference syntax to use `#selector(Foo.bar)`.</span><span class=""> We plan to introduce the new syntax in both 2.2 and 3.0, and we'll also deprecate the StringLiteralConvertible-ness of Selector in 2.2 to be removed from 3.0. A few alternatives came up in discussion, including:</span><div class=""><span class=""><br class=""></span></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><span class="">Foo.bar // (a) implicit conversion from decl ref to Selector</span></div><div class=""><span class="">Selector(Foo.bar) // (b) magic constructor from decl ref to Selector</span></div><div class=""><span class="">Foo.bar.selector // (c) magic member on function decls</span></div></blockquote><br class=""><div class="">On balance, we didn't want to introduce type system complexities for relatively rare ObjC interop features, nixing (a) and (b). Pre-allocating the member space of function types could also have long-term problems, should functions ever gain the ability to have real members (either directly, or indirectly via protocol extensions), so (c) also feels problematic. On the other hand, we already have precedent for '#' as the "miscellaneous compiler magic" sigil, as used in #availability, and '#selector' solidifies that convention.</div><div class=""><br class=""></div><div class="">-Joe</div></body></html>