> On Dec 8, 2016, at 4:35 PM, Jordan Rose via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Um, Sequence doesn’t have a subscript (or indexes). Sequences are 
> single-pass. So if this is important, it needs to stay a Collection.
> 

Just because something fulfills one of the requirements of a Collection does 
not mean it should be one. It needs to tick all the boxes before its allowed to 
be elevated.

But it’s still allowed to have subscripts (UnsafePointer has subscripting but 
isn’t a collection) or be multi-pass (strides are multiples but are only 
sequences). That’s OK

In this case, yes it’s multi-pass, yes it has a subscript, but no it isn’t a 
collection because it doesn’t meet the requirements for slicing i.e. that 
indices of the slice be indices of the parent.
(relatedly… it appears this requirement is documented on the concrete Slice 
type rather than on Collection… which is a documentation bug we should fix).
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to