11// RUN: %empty-directory(%t)
22// RUN: echo "[MyProto]" > %t/protocols.json
33
4- // RUN: %target-swift-frontend -typecheck -emit-const-values-path %t/ExtractKeyPaths.swiftconstvalues -const-gather-protocols-file %t/protocols.json -primary-file %s
4+ // RUN: %target-swift-frontend -enable-upcoming-feature InferSendableFromCaptures - typecheck -emit-const-values-path %t/ExtractKeyPaths.swiftconstvalues -const-gather-protocols-file %t/protocols.json -primary-file %s
55// RUN: cat %t/ExtractKeyPaths.swiftconstvalues 2>&1 | %FileCheck %s
66
7+ // REQUIRES: swift_feature_InferSendableFromCaptures
8+
79protocol MyProto { }
810
911public struct MyType {
@@ -59,7 +61,7 @@ public struct KeyPaths: MyProto {
5961// CHECK-NEXT: "isStatic": "true",
6062// CHECK-NEXT: "isComputed": "false",
6163// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
62- // CHECK-NEXT: "line": 31 ,
64+ // CHECK-NEXT: "line": 33 ,
6365// CHECK-NEXT: "valueKind": "KeyPath",
6466// CHECK-NEXT: "value": {
6567// CHECK-NEXT: "path": "foo",
@@ -79,7 +81,7 @@ public struct KeyPaths: MyProto {
7981// CHECK-NEXT: "isStatic": "true",
8082// CHECK-NEXT: "isComputed": "false",
8183// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
82- // CHECK-NEXT: "line": 32 ,
84+ // CHECK-NEXT: "line": 34 ,
8385// CHECK-NEXT: "valueKind": "KeyPath",
8486// CHECK-NEXT: "value": {
8587// CHECK-NEXT: "path": "foo",
@@ -99,7 +101,7 @@ public struct KeyPaths: MyProto {
99101// CHECK-NEXT: "isStatic": "true",
100102// CHECK-NEXT: "isComputed": "false",
101103// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
102- // CHECK-NEXT: "line": 33 ,
104+ // CHECK-NEXT: "line": 35 ,
103105// CHECK-NEXT: "valueKind": "KeyPath",
104106// CHECK-NEXT: "value": {
105107// CHECK-NEXT: "path": "foo",
@@ -119,7 +121,7 @@ public struct KeyPaths: MyProto {
119121// CHECK-NEXT: "isStatic": "true",
120122// CHECK-NEXT: "isComputed": "false",
121123// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
122- // CHECK-NEXT: "line": 34 ,
124+ // CHECK-NEXT: "line": 36 ,
123125// CHECK-NEXT: "valueKind": "KeyPath",
124126// CHECK-NEXT: "value": {
125127// CHECK-NEXT: "path": "bar",
@@ -139,7 +141,7 @@ public struct KeyPaths: MyProto {
139141// CHECK-NEXT: "isStatic": "true",
140142// CHECK-NEXT: "isComputed": "false",
141143// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
142- // CHECK-NEXT: "line": 35 ,
144+ // CHECK-NEXT: "line": 37 ,
143145// CHECK-NEXT: "valueKind": "KeyPath",
144146// CHECK-NEXT: "value": {
145147// CHECK-NEXT: "path": "bar",
@@ -154,12 +156,12 @@ public struct KeyPaths: MyProto {
154156// CHECK-NEXT: },
155157// CHECK-NEXT: {
156158// CHECK-NEXT: "label": "nestedKeyPath",
157- // CHECK-NEXT: "type": "Swift.WritableKeyPath<ExtractKeyPaths.MyType, Swift.String>",
159+ // CHECK-NEXT: "type": "any Swift.WritableKeyPath<ExtractKeyPaths.MyType, Swift.String> & Swift.Sendable ",
158160// CHECK-NEXT: "mangledTypeName": "n/a - deprecated",
159161// CHECK-NEXT: "isStatic": "true",
160162// CHECK-NEXT: "isComputed": "false",
161163// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
162- // CHECK-NEXT: "line": 36 ,
164+ // CHECK-NEXT: "line": 38 ,
163165// CHECK-NEXT: "valueKind": "KeyPath",
164166// CHECK-NEXT: "value": {
165167// CHECK-NEXT: "path": "nested.foo.bar.baz",
0 commit comments