> On 20 Jul 2016, Chris Lattner wrote:
> 
> The review of "SE-0122: Use colons for subscript declarations " begins now 
> and runs through July 24. The proposal is available here:
> 
>       
> https://github.com/apple/swift-evolution/blob/master/proposals/0122-use-colons-for-subscript-type-declarations.md
> 
>       * What is your evaluation of the proposal?

I'm mildly in favour because I think (settable) subscripts are more similar to 
properties than functions. But is this change worth having in Swift 3? I'm a 
bit surprised it's discussed this late in the cycle.

Here are some considerations on the topic:

1. If we bring colons in, why not change the parentheses into brackets too? 
Like so:

    public subscript[index: Int]: Element

2. If we change the arrows into colons but then later choose to make throwing 
subscripts possible, how could that be still done? Probable answer: by adding 
the `throws` specifier to the getter or setter as needed.

3. Do we want to address the fact that – unlike functions – subscript arguments 
currently have implicitly blank external names, i.e. that `subscript(at: Int)` 
and `subscript(_ at: Int)` are equivalent? I don't think we do; but if that's 
the case then it's probably a good idea to also make the declaration syntax 
less alike with functions. So that would be a small argument in favour of 
SE-0122.

>       * Is the problem being addressed significant enough to warrant a change 
> to Swift?

Probably not at this stage. I think this change could be introduced even 
post-Swift 3, although that would then require maintaining both syntaxes for an 
extended period of time.

>       * Does this proposal fit well with the feel and direction of Swift?

I think so.

>       * If you have used other languages or libraries with a similar feature, 
> how do you feel that this proposal compares to those?

N/A

>       * How much effort did you put into your review? A glance, a quick 
> reading, or an in-depth study?

A quick reading.

— Pyry

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

Reply via email to