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

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


Is there a well-defined meaning for `#` ? What about #selector(x)?

On Tue, Jan 19, 2016 at 4:36 PM, Douglas Gregor <dgregor at apple.com> wrote:

>
> On Jan 19, 2016, at 4:33 PM, Jacob Bandes-Storch <jtbandes at gmail.com>
> wrote:
>
> I'm fine with objc_selector(x.foo) or
>
>
>
> @selector(x.foo).
>
>
> @selector is a no-go: @ means “attribute” in Swift.
>
>  x.foo.selector  is cute, but wouldn't this clash with property
> getters/setters?
>
>
> It would only be available on values of function type that refer to @objc
> methods or initializers. We would (still) need a different mechanism to get
> at the selectors of getters or setters; SE-0022 didn’t solve this problem
> either.
>
> - Doug
>
>
> 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/beefe51a/attachment.html>


More information about the swift-evolution mailing list