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