[swift-evolution] [Completing Generics] Arbitrary requirements in protocols
Jacob Bandes-Storch
jtbandes at gmail.com
Mon Apr 11 03:01:44 CDT 2016
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?
How feasible would it be to implement on top of the current system?
Jacob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160411/d7000391/attachment.html>
More information about the swift-evolution
mailing list