@@ -16,6 +16,10 @@ import Foundation
16
16
17
17
public class MyClass2 : NSObject {
18
18
@_spi ( Experimental) @objc public func spiMethod( ) { }
19
+
20
+ @_spi_available ( macOS 10 . 10 , tvOS 14 . 0 , * )
21
+ @available ( iOS 8 . 0 , * )
22
+ @objc public func spiAvailableMethod( ) { }
19
23
}
20
24
21
25
@_spi_available ( macOS 10 . 10 , tvOS 14 . 0 , * )
@@ -26,6 +30,18 @@ public func spiAvailableFunc() {}
26
30
// CHECK-NEXT: "target":
27
31
// CHECK-NEXT: "globals": [
28
32
// CHECK-NEXT: {
33
+ // CHECK-NEXT: "name": "_$s8MyModule0A6Class2C18spiAvailableMethodyyFTj",
34
+ // CHECK-NEXT: "access": "public",
35
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
36
+ // CHECK-NEXT: "linkage": "exported"
37
+ // CHECK-NEXT: },
38
+ // CHECK-NEXT: {
39
+ // CHECK-NEXT: "name": "_$s8MyModule0A6Class2C18spiAvailableMethodyyFTq",
40
+ // CHECK-NEXT: "access": "public",
41
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
42
+ // CHECK-NEXT: "linkage": "exported"
43
+ // CHECK-NEXT: },
44
+ // CHECK-NEXT: {
29
45
// CHECK-NEXT: "name": "_$s8MyModule0A6Class2CACycfC",
30
46
// CHECK-NEXT: "access": "public",
31
47
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
@@ -56,6 +72,12 @@ public func spiAvailableFunc() {}
56
72
// CHECK-NEXT: "linkage": "exported"
57
73
// CHECK-NEXT: },
58
74
// CHECK-NEXT: {
75
+ // CHECK-NEXT: "name": "_$s8MyModule0A6Class2CMu",
76
+ // CHECK-NEXT: "access": "public",
77
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
78
+ // CHECK-NEXT: "linkage": "exported"
79
+ // CHECK-NEXT: },
80
+ // CHECK-NEXT: {
59
81
// CHECK-NEXT: "name": "_$s8MyModule0A6Class2CN",
60
82
// CHECK-NEXT: "access": "public",
61
83
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
@@ -84,6 +106,12 @@ public func spiAvailableFunc() {}
84
106
// CHECK-NEXT: "super": "NSObject",
85
107
// CHECK-NEXT: "instanceMethods": [
86
108
// CHECK-NEXT: {
109
+ // CHECK-NEXT: "name": "spiAvailableMethod",
110
+ // CHECK-NEXT: "access": "public",
111
+ // CHECK-NEXT: "file": "/@input/MyModule.swiftinterface",
112
+ // CHECK-NEXT: "unavailable": true
113
+ // CHECK-NEXT: },
114
+ // CHECK-NEXT: {
87
115
// CHECK-NEXT: "name": "init",
88
116
// CHECK-NEXT: "access": "public",
89
117
// CHECK-NEXT: "file": "/@input/MyModule.swiftinterface"
@@ -160,6 +188,18 @@ public func spiAvailableFunc() {}
160
188
// CHECK-SPI-NEXT: "linkage": "exported"
161
189
// CHECK-SPI-NEXT: },
162
190
// CHECK-SPI-NEXT: {
191
+ // CHECK-SPI-NEXT: "name": "_$s8MyModule0A6Class2C18spiAvailableMethodyyFTj",
192
+ // CHECK-SPI-NEXT: "access": "private",
193
+ // CHECK-SPI-NEXT: "file": "/@input/MyModule.swiftmodule",
194
+ // CHECK-SPI-NEXT: "linkage": "exported"
195
+ // CHECK-SPI-NEXT: },
196
+ // CHECK-SPI-NEXT: {
197
+ // CHECK-SPI-NEXT: "name": "_$s8MyModule0A6Class2C18spiAvailableMethodyyFTq",
198
+ // CHECK-SPI-NEXT: "access": "private",
199
+ // CHECK-SPI-NEXT: "file": "/@input/MyModule.swiftmodule",
200
+ // CHECK-SPI-NEXT: "linkage": "exported"
201
+ // CHECK-SPI-NEXT: },
202
+ // CHECK-SPI-NEXT: {
163
203
// CHECK-SPI-NEXT: "name": "_$s8MyModule0A6Class2C9spiMethodyyFTj",
164
204
// CHECK-SPI-NEXT: "access": "private",
165
205
// CHECK-SPI-NEXT: "file": "/@input/MyModule.swiftmodule",
@@ -273,6 +313,12 @@ public func spiAvailableFunc() {}
273
313
// CHECK-SPI-NEXT: "file": "/@input/MyModule.swiftmodule"
274
314
// CHECK-SPI-NEXT: },
275
315
// CHECK-SPI-NEXT: {
316
+ // CHECK-SPI-NEXT: "name": "spiAvailableMethod",
317
+ // CHECK-SPI-NEXT: "access": "public",
318
+ // CHECK-SPI-NEXT: "file": "/@input/MyModule.swiftmodule",
319
+ // CHECK-SPI-NEXT: "introduced": "10.10"
320
+ // CHECK-SPI-NEXT: },
321
+ // CHECK-SPI-NEXT: {
276
322
// CHECK-SPI-NEXT: "name": "init",
277
323
// CHECK-SPI-NEXT: "access": "public",
278
324
// CHECK-SPI-NEXT: "file": "/@input/MyModule.swiftmodule"
0 commit comments