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

Jordan Rose jordan_rose at apple.com
Thu Dec 8 18:54:28 CST 2016


> On Dec 8, 2016, at 16:53, Ben Cohen <ben_cohen at apple.com> wrote:
> 
> 
>> On Dec 8, 2016, at 4:35 PM, Jordan Rose via swift-evolution <swift-evolution at swift.org <mailto: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).

Ah, right, thank you. Retracted.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161208/e1681a2e/attachment.html>


More information about the swift-evolution mailing list