> What is your evaluation of the proposal?
+1. I have written plenty of enums with the `allValues` property. It will be
nice to have this synthesized.
I do think a small clarification or revision is warranted, however. I would
like to see a rationale stated for choosing the `Collection` requirement rather
than `Sequence` or `RandomAccessCollection`. The `Sequence` alternative has
been discussed in some depth on the list and this discussion is not represented
in the alternatives section.
I bring up `RandomAccessCollection` as an alternative worth discussing because
I strongly believe the proposal should require the compiler synthesized
`ValueCollection` types to also conform to `RandomAccessCollection` and further
have `Int` indices. One of the leading motivating use cases for this proposal
is in implementing data sources which requires both `Int` indices and also
carries an expectation of a constant time subscript operation.
Placing a stronger requirement on the compiler-synthesized implementation than
we do on manual conformances is somewhat subtle so we should at least consider
whether such requirements are acceptable for all conformances or not and
address that in the proposal. I don’t know of any use cases for a manual
conformance where meeting the stricter requirements would be problematic. On
the other hand, requiring an `Int` index in particular seems like it is
probably too strict.
I support the proposal regardless of the decision but believe additional
discussion and documentation of the alternative constraints would be healthy.
> Is the problem being addressed significant enough to warrant a change to
Absolutely. This is a very common source of boilerplate that is prone to break
as code changes.
> Does this proposal fit well with the feel and direction of Swift?
> If you have used other languages or libraries with a similar feature, how do
> you feel that this proposal compares to those?
> How much effort did you put into your review? A glance, a quick reading, or
> an in-depth study?
In-depth study and participation in prior threads.
swift-evolution mailing list