Skip to content

Commit 043ee1d

Browse files
authored
Merge pull request #12038 from BasThomas/patch-1
Update statuses of generic proposals
2 parents 01dff6d + 0e6bb98 commit 043ee1d

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

docs/GenericsManifesto.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ There are a number of restrictions to the use of generics that fall out of the i
2727

2828
### Recursive protocol constraints (*)
2929

30-
*The feature is being reviewed in [SE-0157](https://github.com/apple/swift-evolution/blob/master/proposals/0157-recursive-protocol-constraints.md).*
30+
*This feature has been accepted in [SE-0157](https://github.com/apple/swift-evolution/blob/master/proposals/0157-recursive-protocol-constraints.md) and is tracked by [SR-1445](https://bugs.swift.org/browse/SR-1445).*
3131

3232
Currently, an associated type cannot be required to conform to its enclosing protocol (or any protocol that inherits that protocol). For example, in the standard library `SubSequence` type of a `Sequence` should itself be a `Sequence`:
3333

@@ -43,7 +43,7 @@ The compiler currently rejects this protocol, which is unfortunate: it effective
4343

4444
### Nested generics
4545

46-
*This feature is tracked by [SR-1446](https://bugs.swift.org/browse/SR-1446) and is planned for release with Swift 3.1.*
46+
*This feature was tracked by [SR-1446](https://bugs.swift.org/browse/SR-1446) and was released with Swift 3.1.*
4747

4848
Currently, a generic type cannot be nested within another generic type, e.g.
4949

@@ -57,7 +57,7 @@ There isn't much to say about this: the compiler simply needs to be improved to
5757

5858
### Concrete same-type requirements
5959

60-
*This feature is tracked by [SR-1009](https://bugs.swift.org/browse/SR-1009) and is planned for release with Swift 3.1.*
60+
*This feature was tracked by [SR-1009](https://bugs.swift.org/browse/SR-1009) and was released with Swift 3.1.*
6161

6262
Currently, a constrained extension cannot use a same-type constraint to make a type parameter equivalent to a concrete type. For example:
6363

@@ -90,7 +90,7 @@ var d2: Dictionary<String, Int> = d1 // okay: d1 and d2 have the same type, Dict
9090

9191
### Generic subscripts
9292

93-
*This feature has been accepted in [SE-0148](https://github.com/apple/swift-evolution/blob/master/proposals/0148-generic-subscripts.md), is tracked by [SR-115](https://bugs.swift.org/browse/SR-115) and is planned for release in Swift 4.*
93+
*This feature has been accepted in [SE-0148](https://github.com/apple/swift-evolution/blob/master/proposals/0148-generic-subscripts.md), was tracked by [SR-115](https://bugs.swift.org/browse/SR-115) and was released with Swift 4.*
9494

9595
Subscripts could be allowed to have generic parameters. For example, we could introduce a generic subscript on a `Collection` that allows us to pull out the values at an arbitrary set of indices:
9696

@@ -186,7 +186,7 @@ There are a number of minor extensions we can make to the generics system that d
186186

187187
### Arbitrary requirements in protocols (*)
188188

189-
*This feature has been accepted in [SE-0142](https://github.com/apple/swift-evolution/blob/master/proposals/0142-associated-types-constraints.md) and is under development.*
189+
*This feature has been accepted in [SE-0142](https://github.com/apple/swift-evolution/blob/master/proposals/0142-associated-types-constraints.md) and was released with Swift 4.*
190190

191191
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.,
192192

@@ -202,7 +202,7 @@ Hanging the `where` clause off the associated type protocol is not ideal, but th
202202

203203
### Typealiases in protocols and protocol extensions (*)
204204

205-
*The feature has been accepted in [SE-0092](https://github.com/apple/swift-evolution/blob/master/proposals/0092-typealiases-in-protocols.md) and was released with Swift 3.*
205+
*This feature has been accepted in [SE-0092](https://github.com/apple/swift-evolution/blob/master/proposals/0092-typealiases-in-protocols.md) and was released with Swift 3.*
206206

207207
Now that associated types have their own keyword (thanks!), it's reasonable to bring back `typealias`. Again with the `Sequence` protocol:
208208

@@ -229,7 +229,7 @@ var p3: Promise = getRandomPromise() // p3 has type Promise<Int, Error> due to t
229229

230230
### Generalized `class` constraints
231231

232-
*This feature will come as a consequence of proposal [SE-0156](https://github.com/apple/swift-evolution/blob/master/proposals/0156-subclass-existentials.md) which is in review.*
232+
*This feature will come as a consequence of proposal [SE-0156](https://github.com/apple/swift-evolution/blob/master/proposals/0156-subclass-existentials.md) and was released with Swift 4.*
233233

234234
The `class` constraint can currently only be used for defining protocols. We could generalize it to associated type and type parameter declarations, e.g.,
235235

@@ -691,7 +691,7 @@ The generics system doesn't seem like a good candidate for a reduction in scope;
691691

692692
### Associated type inference
693693

694-
*The feature has been rejected in [SE-0108](https://github.com/apple/swift-evolution/blob/master/proposals/0108-remove-assoctype-inference.md).*
694+
*This feature has been rejected in [SE-0108](https://github.com/apple/swift-evolution/blob/master/proposals/0108-remove-assoctype-inference.md).*
695695

696696
Associated type inference is the process by which we infer the type bindings for associated types from other requirements. For example:
697697

0 commit comments

Comments
 (0)