<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="">Hi Ted,<div class=""><br class=""></div><div class="">I’d like to pull the implementation of the Objective-C #selector expression into the Swift 2.2 branch:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md</a></div><div class=""><br class=""></div><div class="">The actual implementation is in a number of commits that can be cherry-picked:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/dccf3155f1fe5400df0c9b51f21a3b8f7fa09b9c" class="">https://github.com/apple/swift/commit/dccf3155f1fe5400df0c9b51f21a3b8f7fa09b9c</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/7c0e087cd514c926d9eaa3082679edff626effc8" class="">https://github.com/apple/swift/commit/7c0e087cd514c926d9eaa3082679edff626effc8</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/89834f8d5fcce652401ecaeec4addace48cb2fae" class="">https://github.com/apple/swift/commit/89834f8d5fcce652401ecaeec4addace48cb2fae</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/f7407f6a4d2c9b20ef1d2aab6dbaff5f9419aa88" class="">https://github.com/apple/swift/commit/f7407f6a4d2c9b20ef1d2aab6dbaff5f9419aa88</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/00313a1e7ec4934a1df12541b9a8f2683f28ed67" class="">https://github.com/apple/swift/commit/00313a1e7ec4934a1df12541b9a8f2683f28ed67</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/1a830fa541705594bd4b3936de24a20b5b943059" class="">https://github.com/apple/swift/commit/1a830fa541705594bd4b3936de24a20b5b943059</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/2a42664129d7e95d182a91858fb268e50373b68b" class="">https://github.com/apple/swift/commit/2a42664129d7e95d182a91858fb268e50373b68b</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/37441e1b46cd97d42161455dd712d17ce2ccfe87" class="">https://github.com/apple/swift/commit/37441e1b46cd97d42161455dd712d17ce2ccfe87</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/0a359424d7d5bd31c9e7a2f98c15cd9a1fa40328" class="">https://github.com/apple/swift/commit/0a359424d7d5bd31c9e7a2f98c15cd9a1fa40328</a><br class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><a href="https://github.com/apple/swift/commit/9a0241bb3bcdde3531d0ba683e8d6668c50c9f58" class="">https://github.com/apple/swift/commit/9a0241bb3bcdde3531d0ba683e8d6668c50c9f58</a></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span><a href="https://github.com/apple/swift/commit/dda35e8c4290d3b941b7ea12b40b87e2590a5332" class="">https://github.com/apple/swift/commit/dda35e8c4290d3b941b7ea12b40b87e2590a5332</a></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span><a href="https://github.com/apple/swift/commit/5726e7a329128fdf67a31f1c40df8c8db2698aec" class="">https://github.com/apple/swift/commit/5726e7a329128fdf67a31f1c40df8c8db2698aec</a></div><div class=""><br class=""></div><div class="">This proposal contains both a new feature (the #selector expression) and the deprecation of an existing feature (treating a string literal as a Selector). Our intent is to use 2.2 to start migrating existing clients over to the new syntax, which will become far more important with The Grand Renaming in Swift 3.</div><div class=""><br class=""></div><div class="">There is risk here, of course: I changed the way we emit Objective-C selector references a bit, and the Fix-It code for translating uses of string-literals-as-selectors is non-trivial and makes use of another new feature (SE-0021, compound names). That said, I’m not overly concerned about new problems being introduced by this code. I’d love to see better code completion for compound names, but haven’t figured out a good way to do it yet.</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>- Doug</div><div class=""><br class=""></div></body></html>