[swift-evolution] [Pitch] Normalize Slice Types for Unsafe Buffers

Ben Cohen ben_cohen at apple.com
Thu Dec 8 18:53:33 CST 2016

> On Dec 8, 2016, at 4:35 PM, Jordan Rose via swift-evolution <swift-evolution at 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).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161208/459f41d0/attachment.html>

More information about the swift-evolution mailing list