[swift-evolution] Smart KeyPaths

Brent Royal-Gordon brent at architechies.com
Fri Mar 31 06:33:43 CDT 2017

> On Mar 31, 2017, at 3:07 AM, Haravikk via swift-evolution <swift-evolution at swift.org> wrote:
> Is it actually in-use or just reserved? Not sure I've ever needed it in the debugger.

Pop into the REPL for a minute:

	$ swift
	Welcome to Apple Swift version 3.1 (swiftlang-802.0.41 clang-802.0.36). Type :help for assistance.
	  1> "hello"
	$R0: String = "hello"
	  2> $R0
	$R1: String = "hello"

You may not have ever noticed it was there, but it was.

> What about @? It has a certain appropriateness in how it reads for a path like: @Person.friend.lastName

We're already using @ for attributes; I don't think we want to overload its meaning.

> Another alternative might be something like an unnamed compiler directive, for example: #(Person.friend.lastName)
> If you consider the statement to mean "expand this".

The unnamed compiler directive seems like *really* valuable real estate, arguably much more so than unresolved-member-on-KeyPath-type is. I think it'd be foolish to assign it to anything before we have a macro system designed.

Brent Royal-Gordon

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170331/258dff9a/attachment-0001.html>

More information about the swift-evolution mailing list