> 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