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

Douglas Gregor dgregor at apple.com
Tue Mar 7 15:59:43 CST 2017

> On Feb 24, 2017, at 7:49 AM, Davide Mendolia <davide at gokarumi.com> wrote:
> What's the status of Recursive protocol constraints? it's a feature that will help the design of a library I'm working on.

It’s a surprisingly intricate feature that’s required some major refactoring in the compiler (for the better).

> How can I help ?

The review of this proposal (SE-0157) is active now, so feel free to weigh in if you haven’t already.

	- Doug

> On Tue, Feb 14, 2017 at 1:32 AM Douglas Gregor via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> On Feb 13, 2017, at 1:42 PM, Charles Srstka via swift-evolution <swift-evolution at swift.org <mailto: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
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>

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

More information about the swift-evolution mailing list