@@ -192,9 +192,6 @@ public class KeyPath<Root, Value>: PartialKeyPath<Root> {
192
192
let isLast = optNextType == nil
193
193
194
194
func project< CurValue> ( _ base: CurValue ) -> Value ? {
195
- // FIXME: Opened archetype specialization fails to propagate uses
196
- // in some cases. rdar://problem/31749245
197
- @inline ( never)
198
195
func project2< NewValue> ( _: NewValue . Type ) -> Value ? {
199
196
let newBase : NewValue = rawComponent. projectReadOnly ( base)
200
197
if isLast {
@@ -246,9 +243,6 @@ public class WritableKeyPath<Root, Value>: KeyPath<Root, Value> {
246
243
let nextType = optNextType ?? Value . self
247
244
248
245
func project< CurValue> ( _: CurValue . Type ) {
249
- // FIXME: Opened archetype specialization fails to propagate uses
250
- // in some cases. rdar://problem/31749245
251
- @inline ( never)
252
246
func project2< NewValue> ( _: NewValue . Type ) {
253
247
p = rawComponent. projectMutableAddress ( p,
254
248
from: CurValue . self,
@@ -300,9 +294,6 @@ public class ReferenceWritableKeyPath<Root, Value>: WritableKeyPath<Root, Value>
300
294
let nextType = optNextType. unsafelyUnwrapped
301
295
302
296
func project< NewValue> ( _: NewValue . Type ) -> Any {
303
- // FIXME: Opened archetype specialization fails to propagate uses
304
- // in some cases. rdar://problem/31749245
305
- @inline ( never)
306
297
func project2< CurValue> ( _ base: CurValue ) -> Any {
307
298
return rawComponent. projectReadOnly ( base) as NewValue
308
299
}
@@ -313,9 +304,6 @@ public class ReferenceWritableKeyPath<Root, Value>: WritableKeyPath<Root, Value>
313
304
314
305
// Start formal access to the mutable value, based on the final base
315
306
// value.
316
- // FIXME: Opened archetype specialization fails to propagate uses
317
- // in some cases. rdar://problem/31749245
318
- @inline ( never)
319
307
func formalMutation< MutationRoot> ( _ base: MutationRoot )
320
308
-> UnsafeMutablePointer < Value > {
321
309
var base2 = base
@@ -326,9 +314,6 @@ public class ReferenceWritableKeyPath<Root, Value>: WritableKeyPath<Root, Value>
326
314
let ( rawComponent, optNextType) = buffer. next ( )
327
315
let nextType = optNextType ?? Value . self
328
316
func project< CurValue> ( _: CurValue . Type ) {
329
- // FIXME: Opened archetype specialization fails to propagate uses
330
- // in some cases. rdar://problem/31749245
331
- @inline ( never)
332
317
func project2< NewValue> ( _: NewValue . Type ) {
333
318
p = rawComponent. projectMutableAddress ( p,
334
319
from: CurValue . self,
@@ -1255,9 +1240,6 @@ public func _tryToAppendKeyPaths<Result: AnyKeyPath>(
1255
1240
1256
1241
func open< Root> ( _: Root . Type ) -> Result {
1257
1242
func open2< Value> ( _: Value . Type ) -> Result {
1258
- // FIXME: Opened archetype specialization fails to propagate uses
1259
- // in some cases. rdar://problem/31749245
1260
- @inline ( never)
1261
1243
func open3< AppendedValue> ( _: AppendedValue . Type ) -> Result {
1262
1244
let typedRoot = unsafeDowncast ( root, to: KeyPath< Root, Value> . self )
1263
1245
let typedLeaf = unsafeDowncast ( leaf,
@@ -1642,9 +1624,6 @@ internal func _getKeyPathClassAndInstanceSize(
1642
1624
1643
1625
// Grab the class object for the key path type we'll end up with.
1644
1626
func openRoot< Root> ( _: Root . Type ) -> AnyKeyPath . Type {
1645
- // FIXME: Opened archetype specialization fails to propagate uses
1646
- // in some cases. rdar://problem/31749245
1647
- @inline ( never)
1648
1627
func openLeaf< Leaf> ( _: Leaf . Type ) -> AnyKeyPath . Type {
1649
1628
switch capability {
1650
1629
case . readOnly:
0 commit comments