[Proposal Idea] dot shorthand for instance members

When you access a static member of a type using the dot shortcut, Swift evaluates the expression immediately.

Are you proposing that when you access a member of an instance, Swift generate a closure?

Or are you proposing that Swift generate a closure or not depending on how the expression's value is to be used?

I was thinking of it more in terms of binding the non-self arguments, but either way is effectively the same. This would be necessary in all cases, although in the case of property getters and nullary methods there would no arguments to bind.

Either way seems inconsistent with the static member situation, and like a potential source of confusion: not everyone uses the One True Convention™ of .Capitalized .Static .Members and .lowercase .instance .members, so one cannot reliably deduce the outcome based on the case of the character after the dot.

You can easily deduce it by the type context which you need to know to understand the code anyway. As capitalization is not enforced by the language it is not reasonable to deduce anything based on that.

If you think it could potentially be confusing that is a reasonable position.

···

On Dec 19, 2015, at 1:37 AM, Rob Mayoff via swift-evolution <swift-evolution@swift.org> wrote:

On Thu, Dec 17, 2015 at 9:27 PM, Matthew Johnson via swift-evolution <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
anArray.map{$0.anInstanceMethod()}

becomes:

anArray.map(.anInstanceMethod())
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution