[swift-evolution] [Review] SE-0122: Use colons for subscript declarations

Pyry Jahkola pyry.jahkola at iki.fi
Wed Jul 20 02:47:03 CDT 2016

> 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?


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

A quick reading.

— Pyry

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160720/8370e1b9/attachment.html>

More information about the swift-evolution mailing list