1
1
// RUN: %empty-directory(%t)
2
2
// RUN: echo "[MyProto]" > %t/protocols.json
3
3
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
5
5
// RUN: cat %t/ExtractKeyPaths.swiftconstvalues 2>&1 | %FileCheck %s
6
6
7
+ // REQUIRES: swift_feature_InferSendableFromCaptures
8
+
7
9
protocol MyProto { }
8
10
9
11
public struct MyType {
@@ -59,7 +61,7 @@ public struct KeyPaths: MyProto {
59
61
// CHECK-NEXT: "isStatic": "true",
60
62
// CHECK-NEXT: "isComputed": "false",
61
63
// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
62
- // CHECK-NEXT: "line": 31 ,
64
+ // CHECK-NEXT: "line": 33 ,
63
65
// CHECK-NEXT: "valueKind": "KeyPath",
64
66
// CHECK-NEXT: "value": {
65
67
// CHECK-NEXT: "path": "foo",
@@ -79,7 +81,7 @@ public struct KeyPaths: MyProto {
79
81
// CHECK-NEXT: "isStatic": "true",
80
82
// CHECK-NEXT: "isComputed": "false",
81
83
// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
82
- // CHECK-NEXT: "line": 32 ,
84
+ // CHECK-NEXT: "line": 34 ,
83
85
// CHECK-NEXT: "valueKind": "KeyPath",
84
86
// CHECK-NEXT: "value": {
85
87
// CHECK-NEXT: "path": "foo",
@@ -99,7 +101,7 @@ public struct KeyPaths: MyProto {
99
101
// CHECK-NEXT: "isStatic": "true",
100
102
// CHECK-NEXT: "isComputed": "false",
101
103
// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
102
- // CHECK-NEXT: "line": 33 ,
104
+ // CHECK-NEXT: "line": 35 ,
103
105
// CHECK-NEXT: "valueKind": "KeyPath",
104
106
// CHECK-NEXT: "value": {
105
107
// CHECK-NEXT: "path": "foo",
@@ -119,7 +121,7 @@ public struct KeyPaths: MyProto {
119
121
// CHECK-NEXT: "isStatic": "true",
120
122
// CHECK-NEXT: "isComputed": "false",
121
123
// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
122
- // CHECK-NEXT: "line": 34 ,
124
+ // CHECK-NEXT: "line": 36 ,
123
125
// CHECK-NEXT: "valueKind": "KeyPath",
124
126
// CHECK-NEXT: "value": {
125
127
// CHECK-NEXT: "path": "bar",
@@ -139,7 +141,7 @@ public struct KeyPaths: MyProto {
139
141
// CHECK-NEXT: "isStatic": "true",
140
142
// CHECK-NEXT: "isComputed": "false",
141
143
// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
142
- // CHECK-NEXT: "line": 35 ,
144
+ // CHECK-NEXT: "line": 37 ,
143
145
// CHECK-NEXT: "valueKind": "KeyPath",
144
146
// CHECK-NEXT: "value": {
145
147
// CHECK-NEXT: "path": "bar",
@@ -154,12 +156,12 @@ public struct KeyPaths: MyProto {
154
156
// CHECK-NEXT: },
155
157
// CHECK-NEXT: {
156
158
// 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 ",
158
160
// CHECK-NEXT: "mangledTypeName": "n/a - deprecated",
159
161
// CHECK-NEXT: "isStatic": "true",
160
162
// CHECK-NEXT: "isComputed": "false",
161
163
// CHECK-NEXT: "file": "{{.*}}test{{/|\\\\}}ConstExtraction{{/|\\\\}}ExtractKeyPaths.swift",
162
- // CHECK-NEXT: "line": 36 ,
164
+ // CHECK-NEXT: "line": 38 ,
163
165
// CHECK-NEXT: "valueKind": "KeyPath",
164
166
// CHECK-NEXT: "value": {
165
167
// CHECK-NEXT: "path": "nested.foo.bar.baz",
0 commit comments