1
1
// REQUIRES: objc_interop, OS=macosx
2
2
// RUN: %empty-directory(%t)
3
- // RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk-nosource -I %t) %s -typecheck -emit-module-interface-path %t/MyModule.swiftinterface -enable-library-evolution -module-name MyModule -swift-version 5
4
- // RUN: %target-swift-api-extract -o - -pretty-print %t/MyModule.swiftinterface -module-name MyModule -module-cache-path %t | %FileCheck %s
3
+ // RUN: %empty-directory(%t/ModuleCache)
4
+ // RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk-nosource -I %t) %s -typecheck -parse-as-library -emit-module-interface-path %t/MyModule.swiftinterface -enable-library-evolution -module-name MyModule -swift-version 5
5
+ // RUN: %target-swift-api-extract -o - -pretty-print %t/MyModule.swiftinterface -module-name MyModule -module-cache-path %t/ModuleCache | %FileCheck %s
5
6
6
7
import Foundation
7
8
8
9
@available ( macOS 10 . 13 , * )
9
10
public class Test : NSObject {
10
11
@objc public func method1( ) { }
12
+ @available ( macOS 10 . 14 , * )
11
13
@objc public class func method2( ) { }
12
14
public func nonObjc( ) { }
13
15
}
@@ -42,6 +44,9 @@ public func myFunction1() {}
42
44
@available ( * , unavailable)
43
45
public func myFunction2( ) { }
44
46
47
+ @available ( macOS 10 . 13 , * )
48
+ public var myGlobalVar : Int = 42
49
+
45
50
// CHECK: "target"
46
51
// CHECK-NEXT: "globals": [
47
52
// CHECK-NEXT: {
@@ -66,6 +71,27 @@ public func myFunction2() {}
66
71
// CHECK-NEXT: "unavailable": true
67
72
// CHECK-NEXT: },
68
73
// CHECK-NEXT: {
74
+ // CHECK-NEXT: "name": "_$s8MyModule11myGlobalVarSivM",
75
+ // CHECK-NEXT: "access": "public",
76
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
77
+ // CHECK-NEXT: "linkage": "exported",
78
+ // CHECK-NEXT: "introduced": "10.13"
79
+ // CHECK-NEXT: },
80
+ // CHECK-NEXT: {
81
+ // CHECK-NEXT: "name": "_$s8MyModule11myGlobalVarSivg",
82
+ // CHECK-NEXT: "access": "public",
83
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
84
+ // CHECK-NEXT: "linkage": "exported",
85
+ // CHECK-NEXT: "introduced": "10.13"
86
+ // CHECK-NEXT: },
87
+ // CHECK-NEXT: {
88
+ // CHECK-NEXT: "name": "_$s8MyModule11myGlobalVarSivs",
89
+ // CHECK-NEXT: "access": "public",
90
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
91
+ // CHECK-NEXT: "linkage": "exported",
92
+ // CHECK-NEXT: "introduced": "10.13"
93
+ // CHECK-NEXT: },
94
+ // CHECK-NEXT: {
69
95
// CHECK-NEXT: "name": "_$s8MyModule4TestC7method1yyFTj",
70
96
// CHECK-NEXT: "access": "public",
71
97
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
@@ -81,13 +107,15 @@ public func myFunction2() {}
81
107
// CHECK-NEXT: "name": "_$s8MyModule4TestC7method2yyFZTj",
82
108
// CHECK-NEXT: "access": "public",
83
109
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
84
- // CHECK-NEXT: "linkage": "exported"
110
+ // CHECK-NEXT: "linkage": "exported",
111
+ // CHECK-NEXT: "introduced": "10.14"
85
112
// CHECK-NEXT: },
86
113
// CHECK-NEXT: {
87
114
// CHECK-NEXT: "name": "_$s8MyModule4TestC7method2yyFZTq",
88
115
// CHECK-NEXT: "access": "public",
89
116
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
90
- // CHECK-NEXT: "linkage": "exported"
117
+ // CHECK-NEXT: "linkage": "exported",
118
+ // CHECK-NEXT: "introduced": "10.14"
91
119
// CHECK-NEXT: },
92
120
// CHECK-NEXT: {
93
121
// CHECK-NEXT: "name": "_$s8MyModule4TestC7nonObjcyyFTj",
@@ -117,31 +145,36 @@ public func myFunction2() {}
117
145
// CHECK-NEXT: "name": "_$s8MyModule4TestCMa",
118
146
// CHECK-NEXT: "access": "public",
119
147
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
120
- // CHECK-NEXT: "linkage": "exported"
148
+ // CHECK-NEXT: "linkage": "exported",
149
+ // CHECK-NEXT: "introduced": "10.13"
121
150
// CHECK-NEXT: },
122
151
// CHECK-NEXT: {
123
152
// CHECK-NEXT: "name": "_$s8MyModule4TestCMn",
124
153
// CHECK-NEXT: "access": "public",
125
154
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
126
- // CHECK-NEXT: "linkage": "exported"
155
+ // CHECK-NEXT: "linkage": "exported",
156
+ // CHECK-NEXT: "introduced": "10.13"
127
157
// CHECK-NEXT: },
128
158
// CHECK-NEXT: {
129
159
// CHECK-NEXT: "name": "_$s8MyModule4TestCMo",
130
160
// CHECK-NEXT: "access": "public",
131
161
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
132
- // CHECK-NEXT: "linkage": "exported"
162
+ // CHECK-NEXT: "linkage": "exported",
163
+ // CHECK-NEXT: "introduced": "10.13"
133
164
// CHECK-NEXT: },
134
165
// CHECK-NEXT: {
135
166
// CHECK-NEXT: "name": "_$s8MyModule4TestCMu",
136
167
// CHECK-NEXT: "access": "public",
137
168
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
138
- // CHECK-NEXT: "linkage": "exported"
169
+ // CHECK-NEXT: "linkage": "exported",
170
+ // CHECK-NEXT: "introduced": "10.13"
139
171
// CHECK-NEXT: },
140
172
// CHECK-NEXT: {
141
173
// CHECK-NEXT: "name": "_$s8MyModule4TestCN",
142
174
// CHECK-NEXT: "access": "public",
143
175
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
144
- // CHECK-NEXT: "linkage": "exported"
176
+ // CHECK-NEXT: "linkage": "exported",
177
+ // CHECK-NEXT: "introduced": "10.13"
145
178
// CHECK-NEXT: },
146
179
// CHECK-NEXT: {
147
180
// CHECK-NEXT: "name": "_$s8MyModule4TestCfD",
@@ -291,25 +324,29 @@ public func myFunction2() {}
291
324
// CHECK-NEXT: "name": "_$s8MyModule7DerivedCMa",
292
325
// CHECK-NEXT: "access": "public",
293
326
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
294
- // CHECK-NEXT: "linkage": "exported"
327
+ // CHECK-NEXT: "linkage": "exported",
328
+ // CHECK-NEXT: "introduced": "10.13"
295
329
// CHECK-NEXT: },
296
330
// CHECK-NEXT: {
297
331
// CHECK-NEXT: "name": "_$s8MyModule7DerivedCMn",
298
332
// CHECK-NEXT: "access": "public",
299
333
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
300
- // CHECK-NEXT: "linkage": "exported"
334
+ // CHECK-NEXT: "linkage": "exported",
335
+ // CHECK-NEXT: "introduced": "10.13"
301
336
// CHECK-NEXT: },
302
337
// CHECK-NEXT: {
303
338
// CHECK-NEXT: "name": "_$s8MyModule7DerivedCMo",
304
339
// CHECK-NEXT: "access": "public",
305
340
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
306
- // CHECK-NEXT: "linkage": "exported"
341
+ // CHECK-NEXT: "linkage": "exported",
342
+ // CHECK-NEXT: "introduced": "10.13"
307
343
// CHECK-NEXT: },
308
344
// CHECK-NEXT: {
309
345
// CHECK-NEXT: "name": "_$s8MyModule7DerivedCN",
310
346
// CHECK-NEXT: "access": "public",
311
347
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
312
- // CHECK-NEXT: "linkage": "exported"
348
+ // CHECK-NEXT: "linkage": "exported",
349
+ // CHECK-NEXT: "introduced": "10.13"
313
350
// CHECK-NEXT: },
314
351
// CHECK-NEXT: {
315
352
// CHECK-NEXT: "name": "_$s8MyModule7DerivedCfD",
@@ -342,7 +379,8 @@ public func myFunction2() {}
342
379
// CHECK-NEXT: {
343
380
// CHECK-NEXT: "name": "method2",
344
381
// CHECK-NEXT: "access": "public",
345
- // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface"
382
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
383
+ // CHECK-NEXT: "introduced": "10.14"
346
384
// CHECK-NEXT: }
347
385
// CHECK-NEXT: ]
348
386
// CHECK-NEXT: },
0 commit comments