[swift-evolution] Why doesn't Collection's SubSequence conform to Collection?

Douglas Gregor dgregor at apple.com
Mon Feb 13 18:30:09 CST 2017

> On Feb 13, 2017, at 1:42 PM, Charles Srstka via swift-evolution <swift-evolution at swift.org> wrote:
> The following comment accompanies the declaration of the SubSequence associated type in the Collection protocol:
> /// A sequence that represents a contiguous subrange of the collection's
> /// elements.
> ///
> /// This associated type appears as a requirement in the `Sequence`
> /// protocol, but it is restated here with stricter constraints. In a
> /// collection, the subsequence should also conform to `Collection`.
> associatedtype SubSequence : IndexableBase, Sequence = Slice<Self>
> The comments clearly state that the subsequence should conform to Collection, however, it is not declared as such. Why is this?

The compiler doesn’t support “recursive” constraints. We’re working on it

	https://gist.github.com/DougGregor/e7c4e7bb4465d6f5fa2b59be72dbdba6 <https://gist.github.com/DougGregor/e7c4e7bb4465d6f5fa2b59be72dbdba6>

	- Doug

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170213/9c2b70a8/attachment.html>

More information about the swift-evolution mailing list