12
12
13
13
import weak_import_availability_helper
14
14
15
+ // AlwaysAvailableEnum.conditionallyAvailableCase enum case
16
+ // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper19AlwaysAvailableEnumO013conditionallyF4CaseyA2CmFWC" = extern_weak constant
17
+ // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper19AlwaysAvailableEnumO013conditionallyF4CaseyA2CmFWC" = external constant
18
+
19
+
20
+ // Protocol witness table for AlwaysAvailableStruct: AlwaysAvailableProtocol
21
+ // FIXME: We reference the witness table directly -- that's a bug since the
22
+ // module is resilient. Should reference the conformance descriptor instead.
23
+ // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructVAA0eF8ProtocolAAWP" = extern_weak global ptr
24
+ // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructVAA0eF8ProtocolAAWP" = external global ptr
25
+
26
+
27
+ // Protocol witness table for AlwaysAvailableStruct: UnavailableProtocol
28
+ // CHECK-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructVAA19UnavailableProtocolAAWP" = extern_weak global ptr
29
+
30
+
31
+ // Opaque type descriptor for conditionallyAvailableOpaqueReturnFunction()
32
+ // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper42conditionallyAvailableOpaqueReturnFunctionQryFQOMQ" = extern_weak global %swift.type_descriptor
33
+ // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper42conditionallyAvailableOpaqueReturnFunctionQryFQOMQ" = external global %swift.type_descriptor
34
+
35
+
36
+ // Opaque type descriptor for AlwaysAvailableStruct.opaqueReturnMethodInConditionallyAvailableExtension()
37
+ // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructV033opaqueReturnMethodInConditionallyF9ExtensionQryFQOMQ" = extern_weak global %swift.type_descriptor
38
+ // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructV033opaqueReturnMethodInConditionallyF9ExtensionQryFQOMQ" = external global %swift.type_descriptor
39
+
40
+
41
+ // Opaque type descriptor for AlwaysAvailableStruct.conditionallyAvailableOpaqueReturnMethodInExtension()
42
+ // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF29OpaqueReturnMethodInExtensionQryFQOMQ" = extern_weak global %swift.type_descriptor
43
+ // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF29OpaqueReturnMethodInExtensionQryFQOMQ" = external global %swift.type_descriptor
44
+
45
+
46
+ // Opaque type descriptor for AlwaysAvailableStruct.conditionallyAvailableOpaqueReturnMethodInExplicitlyAvailableExtension()
47
+ // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyf30OpaqueReturnMethodInExplicitlyF9ExtensionQryFQOMQ" = extern_weak global %swift.type_descriptor
48
+ // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyf30OpaqueReturnMethodInExplicitlyF9ExtensionQryFQOMQ" = external global %swift.type_descriptor
49
+
50
+
15
51
public func useConditionallyAvailableCase( e: AlwaysAvailableEnum ) {
16
52
switch e {
17
53
case . alwaysAvailableCase: break
18
54
case . conditionallyAvailableCase: break
19
55
}
20
56
}
21
57
22
- // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper19AlwaysAvailableEnumO013conditionallyF4CaseyA2CmFWC" = extern_weak constant i32
23
- // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper19AlwaysAvailableEnumO013conditionallyF4CaseyA2CmFWC" = external constant i32
24
-
25
58
func useConformance< T : AlwaysAvailableProtocol > ( _: T . Type ) { }
26
59
27
60
@available ( macOS 50 , * )
28
61
public func useConditionallyAvailableConformance( ) {
29
62
useConformance ( AlwaysAvailableStruct . self)
30
63
}
31
64
32
- // FIXME: We reference the witness table directly -- that's a bug since the module is resilient. Should reference the
33
- // conformance descriptor instead.
34
-
35
- // CHECK-OLD-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructVAA0eF8ProtocolAAWP" = extern_weak global ptr
36
- // CHECK-NEW-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructVAA0eF8ProtocolAAWP" = external global ptr
37
-
38
65
@available ( macOS, unavailable)
39
66
func useUnavailableConformance< T : UnavailableProtocol > ( _: T . Type ) { }
40
67
@@ -43,8 +70,6 @@ public func useUnavailableConformance() {
43
70
useUnavailableConformance ( AlwaysAvailableStruct . self)
44
71
}
45
72
46
- // CHECK-LABEL: @"$s31weak_import_availability_helper21AlwaysAvailableStructVAA19UnavailableProtocolAAWP" = extern_weak global ptr, align 8
47
-
48
73
@available ( macOS 50 , * )
49
74
public func callConditionallyAvailableFunction( ) {
50
75
conditionallyAvailableFunction ( )
@@ -60,6 +85,14 @@ public func callUnavailableFunction() {
60
85
61
86
// CHECK-LABEL: declare extern_weak swiftcc void @"$s31weak_import_availability_helper19unavailableFunctionyyF"()
62
87
88
+ @available ( macOS 50 , * )
89
+ public func callConditionallyAvailableOpaqueReturnFunction( ) {
90
+ blackHole ( conditionallyAvailableOpaqueReturnFunction ( ) )
91
+ }
92
+
93
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc void @"$s31weak_import_availability_helper42conditionallyAvailableOpaqueReturnFunctionQryF"
94
+ // CHECK-NEW-LABEL: declare swiftcc void @"$s31weak_import_availability_helper42conditionallyAvailableOpaqueReturnFunctionQryF"
95
+
63
96
@available ( macOS 50 , * )
64
97
public func useConditionallyAvailableGlobal( ) {
65
98
_ = conditionallyAvailableGlobal
@@ -113,6 +146,99 @@ public func useConditionallyAvailableMethod(s: ConditionallyAvailableStruct) {
113
146
// CHECK-OLD-LABEL: declare extern_weak swiftcc void @"$s31weak_import_availability_helper28ConditionallyAvailableStructV013conditionallyF6MethodyyF"(ptr noalias swiftself)
114
147
// CHECK-NEW-LABEL: declare swiftcc void @"$s31weak_import_availability_helper28ConditionallyAvailableStructV013conditionallyF6MethodyyF"(ptr noalias swiftself)
115
148
149
+ @available ( macOS 50 , * )
150
+ public func useMethodInConditionallyAvailableExtension( s: AlwaysAvailableStruct ) {
151
+ s. methodInConditionallyAvailableExtension ( )
152
+ }
153
+
154
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV021methodInConditionallyF9ExtensionyyF"
155
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV021methodInConditionallyF9ExtensionyyF"
156
+
157
+ @available ( macOS 50 , * )
158
+ public func useOpaqueReturnMethodInConditionallyAvailableExtension( s: AlwaysAvailableStruct ) {
159
+ blackHole ( s. opaqueReturnMethodInConditionallyAvailableExtension ( ) )
160
+ }
161
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV033opaqueReturnMethodInConditionallyF9ExtensionQryF"
162
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV033opaqueReturnMethodInConditionallyF9ExtensionQryF"
163
+
164
+ @available ( macOS 50 , * )
165
+ public func useVarInConditionallyAvailableExtension( s: inout AlwaysAvailableStruct ) {
166
+ _ = s. varInConditionallyAvailableExtension
167
+ s. varInConditionallyAvailableExtension = 0
168
+ s. varInConditionallyAvailableExtension += 0
169
+ }
170
+
171
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV018varInConditionallyF9ExtensionSivg"
172
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV018varInConditionallyF9ExtensionSivs"
173
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV018varInConditionallyF9ExtensionSivM"
174
+
175
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV018varInConditionallyF9ExtensionSivg"
176
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV018varInConditionallyF9ExtensionSivs"
177
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV018varInConditionallyF9ExtensionSivM"
178
+
179
+ @available ( macOS 50 , * )
180
+ public func useConditionallyAvailableMethodInExtension( s: AlwaysAvailableStruct ) {
181
+ s. conditionallyAvailableMethodInExtension ( )
182
+ }
183
+
184
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF17MethodInExtensionyyF"
185
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF17MethodInExtensionyyF"
186
+
187
+ @available ( macOS 50 , * )
188
+ public func useConditionallyAvailableOpaqueReturnMethodInExtension( s: AlwaysAvailableStruct ) {
189
+ blackHole ( s. conditionallyAvailableOpaqueReturnMethodInExtension ( ) )
190
+ }
191
+
192
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF29OpaqueReturnMethodInExtensionQryF"
193
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF29OpaqueReturnMethodInExtensionQryF"
194
+
195
+ @available ( macOS 50 , * )
196
+ public func useConditionallyAvailableVarInExtension( s: inout AlwaysAvailableStruct ) {
197
+ _ = s. conditionallyAvailableVarInExtension
198
+ s. conditionallyAvailableVarInExtension = 0
199
+ s. conditionallyAvailableVarInExtension += 0
200
+ }
201
+
202
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF14VarInExtensionSivg"
203
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF14VarInExtensionSivs"
204
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF14VarInExtensionSivM"
205
+
206
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF14VarInExtensionSivg"
207
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF14VarInExtensionSivs"
208
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF14VarInExtensionSivM"
209
+
210
+ @available ( macOS 50 , * )
211
+ public func useConditionallyAvailableMethodInExplicitlyAvailableExtension( s: AlwaysAvailableStruct ) {
212
+ s. conditionallyAvailableMethodInExplicitlyAvailableExtension ( )
213
+ }
214
+
215
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyf18MethodInExplicitlyF9ExtensionyyF"
216
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyf18MethodInExplicitlyF9ExtensionyyF"
217
+
218
+ @available ( macOS 50 , * )
219
+ public func useConditionallyAvailableOpaqueReturnMethodInExplicitlyAvailableExtension( s: AlwaysAvailableStruct ) {
220
+ blackHole ( s. conditionallyAvailableOpaqueReturnMethodInExplicitlyAvailableExtension ( ) )
221
+ }
222
+
223
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyf30OpaqueReturnMethodInExplicitlyF9ExtensionQryF"
224
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyf30OpaqueReturnMethodInExplicitlyF9ExtensionQryF"
225
+
226
+
227
+ @available ( macOS 50 , * )
228
+ public func useConditionallyAvailableVarInExplicitlyAvailableExtension( s: inout AlwaysAvailableStruct ) {
229
+ _ = s. conditionallyAvailableVarInExplicitlyAvailablextension
230
+ s. conditionallyAvailableVarInExplicitlyAvailablextension = 0
231
+ s. conditionallyAvailableVarInExplicitlyAvailablextension += 0
232
+ }
233
+
234
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF32VarInExplicitlyAvailablextensionSivg"
235
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF32VarInExplicitlyAvailablextensionSivs"
236
+ // CHECK-OLD-LABEL: declare extern_weak swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF32VarInExplicitlyAvailablextensionSivM"
237
+
238
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF32VarInExplicitlyAvailablextensionSivg"
239
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF32VarInExplicitlyAvailablextensionSivs"
240
+ // CHECK-NEW-LABEL: declare swiftcc {{.+}} @"$s31weak_import_availability_helper21AlwaysAvailableStructV013conditionallyF32VarInExplicitlyAvailablextensionSivM"
241
+
116
242
@available ( macOS, unavailable)
117
243
public func useUnavailableStruct( ) {
118
244
blackHole ( UnavailableStruct . self)
0 commit comments