Skip to content

Commit ad0445f

Browse files
committed
The Catalina Merge
This patch brings swift-corelibs-foundation closer to behavior parity with released versions of macOS Catalina and aligned Apple releases. Most of these changes are under-the-hood bug fixes or performance improvements, but a few may affect the behavior of your applications. In particular: - The deprecation of NSURL.parameterString is now also effective in Swift for Linux, with similar effects. This brings URL parsing in line with Catalina. Note that Swift for Linux does not support link checks, since there is no binary compatibility guarantee on Linux; this change will be effective to all application code running on Swift for Linux 5.3 or later. - Certain CFXML… types that have been deprecated on macOS are now removed, along with their associated implementation: CFXMLInputStream, CFXMLNode, CFXMLParser. Modern code should be using the FoundationXML module (or, on Darwin, the XMLDocument and related classes in Foundation) to parse documents.
1 parent c971e6f commit ad0445f

File tree

376 files changed

+28125
-16050
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

376 files changed

+28125
-16050
lines changed

Diff for: CoreFoundation/AppServices.subproj/CFNotificationCenter.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* CFNotificationCenter.h
2-
Copyright (c) 1998-2018, Apple Inc. and the Swift project authors
2+
Copyright (c) 1998-2019, Apple Inc. and the Swift project authors
33
4-
Portions Copyright (c) 2014-2018, Apple Inc. and the Swift project authors
4+
Portions Copyright (c) 2014-2019, Apple Inc. and the Swift project authors
55
Licensed under Apache License v2.0 with Runtime Library Exception
66
See http://swift.org/LICENSE.txt for license information
77
See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors

Diff for: CoreFoundation/AppServices.subproj/CFUserNotification.c

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* CFUserNotification.c
2-
Copyright (c) 2000-2018, Apple Inc. All rights reserved.
2+
Copyright (c) 2000-2019, Apple Inc. All rights reserved.
33
4-
Portions Copyright (c) 2014-2018, Apple Inc. and the Swift project authors
4+
Portions Copyright (c) 2014-2019, Apple Inc. and the Swift project authors
55
Licensed under Apache License v2.0 with Runtime Library Exception
66
See http://swift.org/LICENSE.txt for license information
77
See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
@@ -131,7 +131,7 @@ static void _CFUserNotificationAddToDictionary(const void *key, const void *valu
131131
if (CFGetTypeID(key) == CFStringGetTypeID()) CFDictionarySetValue((CFMutableDictionaryRef)context, key, value);
132132
}
133133

134-
static CFDictionaryRef _CFUserNotificationModifiedDictionary(CFAllocatorRef allocator, CFDictionaryRef dictionary, SInt32 token, SInt32 timeout, CFStringRef source) {
134+
static CFDictionaryRef _CFUserNotificationCreateModifiedDictionary(CFAllocatorRef allocator, CFDictionaryRef dictionary, SInt32 token, SInt32 timeout, CFStringRef source) {
135135
CFMutableDictionaryRef md = CFDictionaryCreateMutable(allocator, 0, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
136136
CFNumberRef tokenNumber = CFNumberCreate(allocator, kCFNumberSInt32Type, &token);
137137
CFNumberRef timeoutNumber = CFNumberCreate(allocator, kCFNumberSInt32Type, &timeout);
@@ -207,7 +207,7 @@ static SInt32 _CFUserNotificationSendRequest(CFAllocatorRef allocator, CFStringR
207207

208208
retval = task_get_bootstrap_port(mach_task_self(), &bootstrapPort);
209209
if (ERR_SUCCESS == retval && MACH_PORT_NULL != serverPort) {
210-
modifiedDictionary = _CFUserNotificationModifiedDictionary(allocator, dictionary, token, itimeout, _CFProcessNameString());
210+
modifiedDictionary = _CFUserNotificationCreateModifiedDictionary(allocator, dictionary, token, itimeout, _CFProcessNameString());
211211
if (modifiedDictionary) {
212212
data = CFPropertyListCreateData(allocator, modifiedDictionary, kCFPropertyListXMLFormat_v1_0, 0, NULL);
213213
if (data) {
@@ -265,11 +265,6 @@ CFUserNotificationRef CFUserNotificationCreate(CFAllocatorRef allocator, CFTimeI
265265
userNotification->_token = token;
266266
userNotification->_timeout = timeout;
267267
userNotification->_requestFlags = flags;
268-
userNotification->_responseFlags = 0;
269-
userNotification->_sessionID = NULL;
270-
userNotification->_responseDictionary = NULL;
271-
userNotification->_machPort = NULL;
272-
userNotification->_callout = NULL;
273268
if (sessionID) userNotification->_sessionID = CFStringCreateCopy(allocator, sessionID);
274269
} else {
275270
retval = unix_err(ENOMEM);

Diff for: CoreFoundation/AppServices.subproj/CFUserNotification.h

+40-42
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* CFUserNotification.h
2-
Copyright (c) 2000-2018, Apple Inc. and the Swift project authors
2+
Copyright (c) 2000-2019, Apple Inc. and the Swift project authors
33
4-
Portions Copyright (c) 2014-2018, Apple Inc. and the Swift project authors
4+
Portions Copyright (c) 2014-2019, Apple Inc. and the Swift project authors
55
Licensed under Apache License v2.0 with Runtime Library Exception
66
See http://swift.org/LICENSE.txt for license information
77
See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
@@ -69,116 +69,114 @@ of the textfields. */
6969
typedef void (*CFUserNotificationCallBack)(CFUserNotificationRef userNotification, CFOptionFlags responseFlags);
7070

7171
CF_EXPORT
72-
CFTypeID CFUserNotificationGetTypeID(void);
72+
CFTypeID CFUserNotificationGetTypeID(void) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
7373

7474
CF_EXPORT
75-
CFUserNotificationRef CFUserNotificationCreate(CFAllocatorRef allocator, CFTimeInterval timeout, CFOptionFlags flags, SInt32 *error, CFDictionaryRef dictionary);
75+
CFUserNotificationRef CFUserNotificationCreate(CFAllocatorRef allocator, CFTimeInterval timeout, CFOptionFlags flags, SInt32 *error, CFDictionaryRef dictionary) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
7676

7777
CF_EXPORT
78-
SInt32 CFUserNotificationReceiveResponse(CFUserNotificationRef userNotification, CFTimeInterval timeout, CFOptionFlags *responseFlags);
78+
SInt32 CFUserNotificationReceiveResponse(CFUserNotificationRef userNotification, CFTimeInterval timeout, CFOptionFlags *responseFlags) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
7979

8080
CF_EXPORT
81-
CFStringRef CFUserNotificationGetResponseValue(CFUserNotificationRef userNotification, CFStringRef key, CFIndex idx);
81+
CFStringRef CFUserNotificationGetResponseValue(CFUserNotificationRef userNotification, CFStringRef key, CFIndex idx) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
8282

8383
CF_EXPORT
84-
CFDictionaryRef CFUserNotificationGetResponseDictionary(CFUserNotificationRef userNotification);
84+
CFDictionaryRef CFUserNotificationGetResponseDictionary(CFUserNotificationRef userNotification) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
8585

8686
CF_EXPORT
87-
SInt32 CFUserNotificationUpdate(CFUserNotificationRef userNotification, CFTimeInterval timeout, CFOptionFlags flags, CFDictionaryRef dictionary);
87+
SInt32 CFUserNotificationUpdate(CFUserNotificationRef userNotification, CFTimeInterval timeout, CFOptionFlags flags, CFDictionaryRef dictionary) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
8888

8989
CF_EXPORT
90-
SInt32 CFUserNotificationCancel(CFUserNotificationRef userNotification);
90+
SInt32 CFUserNotificationCancel(CFUserNotificationRef userNotification) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
9191

9292
CF_EXPORT
93-
CFRunLoopSourceRef CFUserNotificationCreateRunLoopSource(CFAllocatorRef allocator, CFUserNotificationRef userNotification, CFUserNotificationCallBack callout, CFIndex order);
93+
CFRunLoopSourceRef CFUserNotificationCreateRunLoopSource(CFAllocatorRef allocator, CFUserNotificationRef userNotification, CFUserNotificationCallBack callout, CFIndex order) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
9494

9595
/* Convenience functions for handling the simplest and most common cases:
9696
a one-way notification, and a notification with up to three buttons. */
9797

9898
CF_EXPORT
99-
SInt32 CFUserNotificationDisplayNotice(CFTimeInterval timeout, CFOptionFlags flags, CFURLRef iconURL, CFURLRef soundURL, CFURLRef localizationURL, CFStringRef alertHeader, CFStringRef alertMessage, CFStringRef defaultButtonTitle);
99+
SInt32 CFUserNotificationDisplayNotice(CFTimeInterval timeout, CFOptionFlags flags, CFURLRef iconURL, CFURLRef soundURL, CFURLRef localizationURL, CFStringRef alertHeader, CFStringRef alertMessage, CFStringRef defaultButtonTitle) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
100100

101101
CF_EXPORT
102-
SInt32 CFUserNotificationDisplayAlert(CFTimeInterval timeout, CFOptionFlags flags, CFURLRef iconURL, CFURLRef soundURL, CFURLRef localizationURL, CFStringRef alertHeader, CFStringRef alertMessage, CFStringRef defaultButtonTitle, CFStringRef alternateButtonTitle, CFStringRef otherButtonTitle, CFOptionFlags *responseFlags);
102+
SInt32 CFUserNotificationDisplayAlert(CFTimeInterval timeout, CFOptionFlags flags, CFURLRef iconURL, CFURLRef soundURL, CFURLRef localizationURL, CFStringRef alertHeader, CFStringRef alertMessage, CFStringRef defaultButtonTitle, CFStringRef alternateButtonTitle, CFStringRef otherButtonTitle, CFOptionFlags *responseFlags) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
103103

104104

105105
/* Flags */
106106

107107
CF_ENUM(CFOptionFlags) {
108-
kCFUserNotificationStopAlertLevel = 0,
109-
kCFUserNotificationNoteAlertLevel = 1,
110-
kCFUserNotificationCautionAlertLevel = 2,
111-
kCFUserNotificationPlainAlertLevel = 3
108+
kCFUserNotificationStopAlertLevel API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 0,
109+
kCFUserNotificationNoteAlertLevel API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 1,
110+
kCFUserNotificationCautionAlertLevel API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 2,
111+
kCFUserNotificationPlainAlertLevel API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 3
112112
};
113113

114114
CF_ENUM(CFOptionFlags) {
115-
kCFUserNotificationDefaultResponse = 0,
116-
kCFUserNotificationAlternateResponse = 1,
117-
kCFUserNotificationOtherResponse = 2,
118-
kCFUserNotificationCancelResponse = 3
115+
kCFUserNotificationDefaultResponse API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 0,
116+
kCFUserNotificationAlternateResponse API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 1,
117+
kCFUserNotificationOtherResponse API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 2,
118+
kCFUserNotificationCancelResponse API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = 3
119119
};
120120

121121
CF_ENUM(CFOptionFlags) {
122-
kCFUserNotificationNoDefaultButtonFlag = (1UL << 5),
123-
kCFUserNotificationUseRadioButtonsFlag = (1UL << 6)
122+
kCFUserNotificationNoDefaultButtonFlag API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = (1UL << 5),
123+
kCFUserNotificationUseRadioButtonsFlag API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) = (1UL << 6)
124124
};
125125

126-
CF_INLINE CFOptionFlags CFUserNotificationCheckBoxChecked(CFIndex i) {return ((CFOptionFlags)(1UL << (8 + i)));}
127-
CF_INLINE CFOptionFlags CFUserNotificationSecureTextField(CFIndex i) {return ((CFOptionFlags)(1UL << (16 + i)));}
128-
CF_INLINE CFOptionFlags CFUserNotificationPopUpSelection(CFIndex n) {return ((CFOptionFlags)(n << 24));}
126+
CF_INLINE CFOptionFlags CFUserNotificationCheckBoxChecked(CFIndex i) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) {return ((CFOptionFlags)(1UL << (8 + i)));}
127+
CF_INLINE CFOptionFlags CFUserNotificationSecureTextField(CFIndex i) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) {return ((CFOptionFlags)(1UL << (16 + i)));}
128+
CF_INLINE CFOptionFlags CFUserNotificationPopUpSelection(CFIndex n) API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos) {return ((CFOptionFlags)(n << 24));}
129129

130130

131131
/* Keys */
132132

133133
CF_EXPORT
134-
const CFStringRef kCFUserNotificationIconURLKey;
134+
const CFStringRef kCFUserNotificationIconURLKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
135135

136136
CF_EXPORT
137-
const CFStringRef kCFUserNotificationSoundURLKey;
137+
const CFStringRef kCFUserNotificationSoundURLKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
138138

139139
CF_EXPORT
140-
const CFStringRef kCFUserNotificationLocalizationURLKey;
140+
const CFStringRef kCFUserNotificationLocalizationURLKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
141141

142142
CF_EXPORT
143-
const CFStringRef kCFUserNotificationAlertHeaderKey;
143+
const CFStringRef kCFUserNotificationAlertHeaderKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
144144

145145
CF_EXPORT
146-
const CFStringRef kCFUserNotificationAlertMessageKey;
146+
const CFStringRef kCFUserNotificationAlertMessageKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
147147

148148
CF_EXPORT
149-
const CFStringRef kCFUserNotificationDefaultButtonTitleKey;
149+
const CFStringRef kCFUserNotificationDefaultButtonTitleKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
150150

151151
CF_EXPORT
152-
const CFStringRef kCFUserNotificationAlternateButtonTitleKey;
152+
const CFStringRef kCFUserNotificationAlternateButtonTitleKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
153153

154154
CF_EXPORT
155-
const CFStringRef kCFUserNotificationOtherButtonTitleKey;
155+
const CFStringRef kCFUserNotificationOtherButtonTitleKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
156156

157157
CF_EXPORT
158-
const CFStringRef kCFUserNotificationProgressIndicatorValueKey;
158+
const CFStringRef kCFUserNotificationProgressIndicatorValueKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
159159

160160
CF_EXPORT
161-
const CFStringRef kCFUserNotificationPopUpTitlesKey;
161+
const CFStringRef kCFUserNotificationPopUpTitlesKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
162162

163163
CF_EXPORT
164-
const CFStringRef kCFUserNotificationTextFieldTitlesKey;
164+
const CFStringRef kCFUserNotificationTextFieldTitlesKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
165165

166166
CF_EXPORT
167-
const CFStringRef kCFUserNotificationCheckBoxTitlesKey;
167+
const CFStringRef kCFUserNotificationCheckBoxTitlesKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
168168

169169
CF_EXPORT
170-
const CFStringRef kCFUserNotificationTextFieldValuesKey;
170+
const CFStringRef kCFUserNotificationTextFieldValuesKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
171171

172172
CF_EXPORT
173173
const CFStringRef kCFUserNotificationPopUpSelectionKey API_AVAILABLE(macos(10.3)) API_UNAVAILABLE(ios, watchos, tvos);
174174

175-
#if (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)
176175
CF_EXPORT
177-
const CFStringRef kCFUserNotificationAlertTopMostKey;
176+
const CFStringRef kCFUserNotificationAlertTopMostKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
178177

179178
CF_EXPORT
180-
const CFStringRef kCFUserNotificationKeyboardTypesKey;
181-
#endif
179+
const CFStringRef kCFUserNotificationKeyboardTypesKey API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
182180

183181
CF_EXTERN_C_END
184182
CF_IMPLICIT_BRIDGING_DISABLED

Diff for: CoreFoundation/Base.subproj/CFAvailability.h

+23-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* CFAvailability.h
2-
Copyright (c) 2013-2018, Apple Inc. and the Swift project authors
2+
Copyright (c) 2013-2019, Apple Inc. and the Swift project authors
33
4-
Portions Copyright (c) 2014-2018, Apple Inc. and the Swift project authors
4+
Portions Copyright (c) 2014-2019, Apple Inc. and the Swift project authors
55
Licensed under Apache License v2.0 with Runtime Library Exception
66
See http://swift.org/LICENSE.txt for license information
77
See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
@@ -10,7 +10,11 @@
1010
#if !defined(__COREFOUNDATION_CFAVAILABILITY__)
1111
#define __COREFOUNDATION_CFAVAILABILITY__ 1
1212

13+
#if __has_include(<CoreFoundation/TargetConditionals.h>)
1314
#include <CoreFoundation/TargetConditionals.h>
15+
#else
16+
#include <TargetConditionals.h>
17+
#endif
1418

1519
#if __has_include(<Availability.h>) && __has_include(<os/availability.h>) && __has_include(<AvailabilityMacros.h>)
1620
#include <Availability.h>
@@ -36,7 +40,7 @@
3640
// The arguments to these availability macros is a version number, e.g. 10_6, 3_0 or 'NA'
3741
// To use a deprecation message with the macro, add a string as the last argument.
3842
#if __has_feature(attribute_availability_with_version_underscores) || (__has_feature(attribute_availability_with_message) && __clang__ && __clang_major__ >= 7)
39-
#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE))
43+
#if TARGET_OS_OSX
4044
// This section is for compilers targeting OS X which support attribute_availability_with_message
4145

4246
#define CF_AVAILABLE(_mac, _ios) __attribute__((availability(macosx,introduced=_mac)))
@@ -46,7 +50,7 @@
4650
#define CF_DEPRECATED_MAC(_macIntro, _macDep, ...) __attribute__((availability(macosx,introduced=_macIntro,deprecated=_macDep,message="" __VA_ARGS__)))
4751
#define CF_DEPRECATED_IOS(_iosIntro, _iosDep, ...) __attribute__((availability(macosx,unavailable)))
4852

49-
#elif (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)
53+
#elif TARGET_OS_IPHONE
5054
// This section is for compilers targeting iOS which support attribute_availability_with_message
5155

5256
#define CF_AVAILABLE(_mac, _ios) __attribute__((availability(ios,introduced=_ios)))
@@ -58,7 +62,7 @@
5862

5963
#endif
6064

61-
#elif (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)
65+
#elif TARGET_OS_OSX || TARGET_OS_IPHONE
6266
// This section is for OS X or iOS, and compilers without support for attribute_availability_with_message. We fall back to Availability.h.
6367

6468
#ifndef __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0
@@ -105,6 +109,17 @@
105109
#define CF_ENUM_DEPRECATED_IOS(_iosIntro, _iosDep, ...)
106110
#endif
107111

112+
// "Soft" deprecation.
113+
#ifndef API_TO_BE_DEPRECATED
114+
/// This macro is used as a version number in API that will be deprecated in an upcoming release. We call this API "soft deprecated". Soft deprecation is an intermediate step before formal deprecation, used as a way to give you a heads-up about the API before you start getting a compiler warning.
115+
/// You can find all places in your code that use soft deprecated API by redefining the value of this macro to your current minimum deployment target, for example:
116+
/// (macOS)
117+
/// clang -DAPI_TO_BE_DEPRECATED=10.12 other compiler flags
118+
/// (iOS)
119+
/// clang -DAPI_TO_BE_DEPRECATED=11.0 other compiler flags
120+
#define API_TO_BE_DEPRECATED 100000
121+
#endif
122+
108123
// Enums and Options
109124
#if __has_attribute(enum_extensibility)
110125
#define __CF_ENUM_ATTRIBUTES __attribute__((enum_extensibility(open)))
@@ -117,7 +132,9 @@
117132
#endif
118133

119134
#define __CF_ENUM_GET_MACRO(_1, _2, NAME, ...) NAME
120-
#if (__cplusplus && __cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && (__has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum)))
135+
#define __CF_ENUM_FIXED_IS_AVAILABLE (__cplusplus && __cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && (__has_feature(objc_fixed_enum) || __has_extension(cxx_fixed_enum)))
136+
137+
#if __CF_ENUM_FIXED_IS_AVAILABLE
121138
#define __CF_NAMED_ENUM(_type, _name) enum __CF_ENUM_ATTRIBUTES _name : _type _name; enum _name : _type
122139
#define __CF_ANON_ENUM(_type) enum __CF_ENUM_ATTRIBUTES : _type
123140
#define CF_CLOSED_ENUM(_type, _name) enum __CF_CLOSED_ENUM_ATTRIBUTES _name : _type _name; enum _name : _type

0 commit comments

Comments
 (0)