File tree Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Expand file tree Collapse file tree 1 file changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -484,15 +484,27 @@ func testDynamicMemberWithDefault(_ x: SR_11933) {
484
484
_ = \SR_11933 . [ ]
485
485
}
486
486
487
+ // SR-11743 - KeyPath Dynamic Member Lookup crash
487
488
@dynamicMemberLookup
488
- protocol SR_11743 {
489
+ protocol SR_11743_P {
489
490
subscript( dynamicMember member: KeyPath < Self , Any > ) -> Any { get }
490
491
}
491
492
492
- extension SR_11743 {
493
+ extension SR_11743_P {
493
494
subscript( dynamicMember member: KeyPath < Self , Any > ) -> Any {
494
495
self [ keyPath: member] // Ok
495
496
// CHECK: function_ref @swift_getAtKeyPath
496
497
// CHECK-NEXT: apply %{{.*}}<Self, Any>({{.*}})
497
498
}
498
499
}
500
+
501
+ @dynamicMemberLookup
502
+ struct SR_11743_Struct {
503
+ let value : Int
504
+
505
+ subscript< T> ( dynamicMember member: KeyPath < Self , T > ) -> T {
506
+ return self [ keyPath: member]
507
+ // CHECK: function_ref @swift_getAtKeyPath
508
+ // CHECK-NEXT: apply %{{.*}}<SR_11743_Struct, T>({{.*}})
509
+ }
510
+ }
You can’t perform that action at this time.
0 commit comments