Hi Doug,

I've read the discussion about moving the where clause to the right of 
declarations (which I full-heartedly approve) but I don't see how it would have 
any impact on the syntax of associated types requirements.

David

> On 12 Apr 2016, at 19:07, Douglas Gregor via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>>> On Apr 11, 2016, at 1:01 AM, Jacob Bandes-Storch via swift-evolution 
>>> <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?
> 
> Yes. Also, be wary that the syntax above potentially conflicts with the 
> syntax discussed as "moving the where clauses”:
> 
>       
> http://thread.gmane.org/gmane.comp.lang.swift.evolution/13886/focus=14058
> 
> 
>> How feasible would it be to implement on top of the current system?
> 
> Definitely! The archetype builder would need to learn to check these extra 
> where clauses, and one would need to be sure that the constraint solver is 
> picking them up as well.
> 
>       - Doug
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to