> On 6 Apr 2017, at 04:21, Ricardo Parada via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>> On Apr 5, 2017, at 9:41 PM, Brent Royal-Gordon via swift-evolution 
>> <swift-evolution@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@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to