@@ -33,6 +33,8 @@ pub enum UnexposedAttr {
33
33
34
34
NoEscape ,
35
35
NoThrow ,
36
+
37
+ FullyUnavailable ,
36
38
}
37
39
38
40
impl UnexposedAttr {
@@ -153,6 +155,18 @@ impl UnexposedAttr {
153
155
"NS_REQUIRES_PROPERTY_DEFINITIONS" => None ,
154
156
// Weak specifiers - would be interesting if Rust supported weak statics
155
157
"GK_EXTERN_WEAK" | "MC_EXTERN_WEAK" | "weak_import" => None ,
158
+ // Some availability attributes are not properly exposed.
159
+ "NS_UNAVAILABLE"
160
+ | "UNAVAILABLE_ATTRIBUTE"
161
+ | "DISPATCH_UNAVAILABLE"
162
+ | "AV_INIT_UNAVAILABLE"
163
+ | "AVKIT_INIT_UNAVAILABLE"
164
+ | "MP_INIT_UNAVAILABLE"
165
+ | "VS_INIT_UNAVAILABLE" => Some ( Self :: FullyUnavailable ) ,
166
+ // TODO: Add this to the above?
167
+ "CF_AUTOMATED_REFCOUNT_UNAVAILABLE"
168
+ | "NS_AUTOMATED_REFCOUNT_UNAVAILABLE"
169
+ | "NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE" => None ,
156
170
// Availability attributes - their data is already exposed.
157
171
"__API_AVAILABLE"
158
172
| "__API_DEPRECATED"
@@ -333,14 +347,12 @@ impl UnexposedAttr {
333
347
| "__WATCHOS_UNAVAILABLE"
334
348
| "__UNAVAILABLE_PUBLIC_IOS"
335
349
| "APPKIT_API_UNAVAILABLE_BEGIN_MACCATALYST"
336
- | "AVKIT_INIT_UNAVAILABLE"
337
350
| "BROWSERENGINE_TEXTINPUT_AVAILABILITY"
338
351
| "BROWSERENGINE_ACCESSIBILITY_AVAILABILITY"
339
352
| "BROWSERENGINE_ACCESSIBILITY_MARKER_AVAILABILITY"
340
353
| "BROWSERENGINE_ACCESSIBILITY_REMOTE_AVAILABILITY"
341
354
| "CA_CANONICAL_DEPRECATED"
342
355
| "CB_CM_API_AVAILABLE"
343
- | "CF_AUTOMATED_REFCOUNT_UNAVAILABLE"
344
356
| "CG_OBSOLETE"
345
357
| "CK_SHARE_ACCESS_REQUESTER_AVAILABILITY"
346
358
| "CK_SHARE_BLOCKED_IDENTITY_AVAILABILITY"
@@ -353,7 +365,6 @@ impl UnexposedAttr {
353
365
| "DEPRECATED_ATTRIBUTE"
354
366
| "DEPRECATED_ATTRIBUTE_EXCLUDE_PUBLIC_IOS"
355
367
| "DEPRECATED_MSG_ATTRIBUTE"
356
- | "DISPATCH_UNAVAILABLE"
357
368
| "EN_API_AVAILABLE"
358
369
| "EN_API_AVAILABLE_V2"
359
370
| "EN_API_AVAILABLE_V3"
@@ -379,17 +390,11 @@ impl UnexposedAttr {
379
390
| "MIDICI1_1"
380
391
| "MIDICI1_2"
381
392
| "MIDINETWORKSESSION_AVAILABLE"
382
- | "MP_INIT_UNAVAILABLE"
383
- | "NS_AUTOMATED_REFCOUNT_UNAVAILABLE"
384
- | "NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE"
385
393
| "NS_CLASS_AVAILABLE"
386
- | "NS_UNAVAILABLE"
387
- | "UNAVAILABLE_ATTRIBUTE"
388
394
| "UT_AVAILABLE_BEGIN"
389
395
| "MP_DEPRECATED_BEGIN"
390
396
| "SEC_ASN1_API_DEPRECATED"
391
397
| "SECUREDOWNLOAD_API_DEPRECATED"
392
- | "VS_INIT_UNAVAILABLE"
393
398
| "XCT_METRIC_API_AVAILABLE"
394
399
| "XCUI_PROTECTED_RESOURCES_RESET_API_AVAILABLE" => None ,
395
400
s if s. starts_with ( "AVAILABLE_MAC_OS_X_VERSION_" ) => None ,
@@ -435,8 +440,6 @@ impl UnexposedAttr {
435
440
None
436
441
}
437
442
"objc_non_runtime_protocol" => None ,
438
- // Emits unavailability attributes on `new` and `init` methods
439
- "AV_INIT_UNAVAILABLE" => None ,
440
443
// Helper used to easy declare @interface in CompositorServices.
441
444
"CP_OBJECT_DECL" => {
442
445
let _ = get_arguments ( ) ;
@@ -446,6 +449,7 @@ impl UnexposedAttr {
446
449
"XCT_WEAK_EXPORT" => None ,
447
450
// Irrelevant, we don't emit dispatch_object_t anyhow.
448
451
"DISPATCH_TRANSPARENT_UNION" => None ,
452
+ "NS_NO_TAIL_CALL" => None ,
449
453
_ => return Err ( ( ) ) ,
450
454
} )
451
455
}
0 commit comments