> 
> What is your evaluation of the proposal?
+1.  This is a fantastic proposal!  I have been looking forward to the ability 
to access unbound properties ever since Swift was first released.  I am very 
happy to see it coming to the language.  The design of this feature is even 
better than I had been hoping for!

That said, I do feel like the syntax changes in the revised draft were a step 
backwards on two fronts.  The new syntax is inconsistent with that of the 
syntax used for unbound methods.  IMO all unbound members should be available 
using the same syntax.  Second, the new syntax is (IMO) too cumbersome, 
especially in the shorthand case where a type context is known.  

This feature can be leveraged to build libraries with DSL-like interfaces of 
various kinds.  The more cumbersome syntax significantly reduces the elegance 
of these designs.  This is unfortunate.  As I have mentioned before, I think we 
should consider using the `#` separator to indicate the start of the unbound 
portion of a member chain.  This aligns with the convention of # indicating 
compiler magic and is very lightweight.

While I am not fully satisfied with the current syntax I would not want to see 
that stop the proposal from being accepted.  It is a huge step forward and new 
syntactic sugar could be added in the future without breaking old code.


> Is the problem being addressed significant enough to warrant a change to 
> Swift?
Yes, this is a huge improvement!

> Does this proposal fit well with the feel and direction of Swift?
Very much.

> If you have used other languages or libraries with a similar feature, how do 
> you feel that this proposal compares to those?
It is better than other languages I have used where unbound property access was 
limited to direct properties, not entire chains or properties and subscripts.

> How much effort did you put into your review? A glance, a quick reading, or 
> an in-depth study?
In depth study.  And I am already writing code that will use Smart KeyPaths as 
soon as they are implemented.

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to