on Mon Apr 11 2016, Jacob Bandes-Storch <swift-evolution@swift.org> wrote:

> Doug wrote this in the Completing Generics manifesto, under "Minor 
> extensions":
>
>     *Arbitrary requirements in protocols
>
>     Currently, a new protocol can inherit from other protocols, introduce new
>     associated types, and add new conformance constraints to associated types
>     (by redeclaring an associated type from an inherited protocol). However, 
> one
>     cannot express more general constraints. Building on the example from
>     “Recursive protocol constraints”, we really want the element type of a
>     Sequence’s SubSequence to be the same as the element type of the Sequence,
>     e.g.,
>
>     protocol Sequence {
>     associatedtype Iterator : IteratorProtocol
>     …
>     associatedtype SubSequence : Sequence where SubSequence.Iterator.Element 
> ==
>     Iterator.Element
>     }
>
> +1.
>
> To make it into Swift 3, would this feature require a proposal of its
> own? 

It could be part of another proposal, but it should be in a proposal.
Whether or not it can still make Swift 3, I am unsure.

> How feasible would it be to implement on top of the current system?

I can't answer that, but if you want to work on this I'd suggest
starting with the implementation.  In this case, the proposal is the
easy part.

-- 
Dave

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to