[swift-evolution] [Review] SE-0022: Referencing the Objective-C selector of a method

Jacob Bandes-Storch jtbandes at gmail.com
Tue Jan 19 18:33:16 CST 2016


I'm fine with objc_selector(x.foo) or @selector(x.foo).  x.foo.selector  is
cute, but wouldn't this clash with property getters/setters?

Jacob

On Tue, Jan 19, 2016 at 4:21 PM, Douglas Gregor via swift-evolution <
swift-evolution at swift.org> wrote:

>
> On Jan 19, 2016, at 2:46 PM, David Hart <david at hartbit.com> wrote:
>
> What effect would that have? Would the options still return a type
> (Selector) that is CustomStringConvertible or would it just be compiler
> magic?
>
>
> Either way, we’ll return a Selector. The concern about “Selector(x.foo)”
> is that we would need special, ad hoc overload-resolution rules to decide
> between this magic syntax and other initializers of Selector. Making it a
> separate expression (“objc_selector(x.foo)”) or a special property on
> values of function type (“x.foo.selector”) eliminate that issue.
>
> We’d love to hear everyone’s thoughts on those approaches.
>
> - Doug
>
> David.
>
> On 19 Jan 2016, at 23:43, Joe Groff via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> We discussed this proposal during our core team review meeting, and
> concerns were raised about the implementability of the proposed
> 'Selector(Type.method)' syntax. Producing the selector is something that
> can't quite be modeled as a real initializer, so the type checker would
> have to perform heroics to disambiguate a selector literal reference from a
> proper initializer call. We recommend reconsidering alternative syntactic
> forms for referencing the selector. Potential options include:
>
> - A unique prefix identifier, such as `objc_selector(Type.method)`, as you
> had originally proposed, or
> - Taking advantage of the fact that functions don't have members to
> ascribe special behavior to 'Type.method.objcSelector', or something like
> it.
>
> -Joe
>
> On Jan 18, 2016, at 8:02 AM, Joe Groff via swift-evolution <
> swift-evolution at swift.org> wrote:
>
> Hello Swift community,
>
> The review of “Referencing the Objective-C selector of a method” begins
> now and runs through January 23, 2016. The proposal is available here:
>
>
> https://github.com/apple/swift-evolution/blob/master/proposals/0022-objc-selectors.md
>
> Reviews are an important part of the Swift evolution process. All reviews
> should be sent to the swift-evolution mailing list at
>
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
> or, if you would like to keep your feedback private, directly to the
> review manager.
>
>
> *What goes into a review?*
> 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:
>
> • What is your evaluation of the proposal?
> • Is the problem being addressed significant enough to warrant a change to
> Swift?
> • Does this proposal fit well with the feel and direction of Swift?
> • If you have you used other languages or libraries with a similar
> feature, how do you feel that this proposal compares to those?
> • How much effort did you put into your review? A glance, a quick reading,
> or an in-depth study?
>
> More information about the Swift evolution process is available at
>
> https://github.com/apple/swift-evolution/blob/master/process.md
>
> Thank you,
>
> -Joe
>
> Review Manager
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160119/aad77e97/attachment.html>


More information about the swift-evolution mailing list