[swift-evolution] [Review #2] SE-0161: Smart KeyPaths: Better Key-Value Coding for Swift
david at hartbit.com
Thu Apr 6 00:56:52 CDT 2017
> On 6 Apr 2017, at 04:21, Ricardo Parada via swift-evolution <swift-evolution at swift.org> wrote:
>> On Apr 5, 2017, at 9:41 PM, Brent Royal-Gordon via swift-evolution <swift-evolution at swift.org> wrote:
>> It's worth noting that, if you write `\Person.name.valueType`, this syntax is ambiguous—it could mean "make a key path for the `valueType` property on `name` property of `Person`", or it could mean "make a key path for the `name` property of `Person`, then access the key path's `valueType` property". We can solve this by always interpreting it as the former and requiring parentheses for the latter—that is, `(\Person.name).valueType`—but I thought it was worth calling out explicitly.
> Good point.
> I'm thinking about the hypothetical code examples from previous emails:
> let isPuppyQualifier = \Pet.type == .dog && \Pet.age < 12
> let familyQualifier = (\Family.pets).contains(where: isPuppyQualifier)
> let familiesWithPuppies = Family.fetch(editingContext, familyQualifier)
Couldn't the compiler see there exists no contains property on pets and allow us to avoid the parentheses?
> swift-evolution mailing list
> swift-evolution at swift.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution