mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
...because otherwise option sets that get imported as members using NS_SWIFT_NAME are printed with an 'enum' tag, and the definition of NS_OPTIONS only declares the typedef under C++. We should come back and figure out something more principled for this later, but for now this solves an issue with generated headers imported into C++ translation units. rdar://problem/27130343
24 lines
905 B
Objective-C
24 lines
905 B
Objective-C
// This file is meant to be used with the mock SDK, not the real one.
|
|
#import <Foundation.h>
|
|
|
|
#define SWIFT_NAME(X) __attribute__((swift_name(#X)))
|
|
|
|
@interface Wrapper : NSObject
|
|
@end
|
|
|
|
enum TopLevelRaw { TopLevelRawA };
|
|
enum MemberRaw { MemberRawA } SWIFT_NAME(Wrapper.Raw);
|
|
|
|
typedef enum { TopLevelAnonA } TopLevelAnon;
|
|
typedef enum { MemberAnonA } MemberAnon SWIFT_NAME(Wrapper.Anon);
|
|
typedef enum SWIFT_NAME(Wrapper.Anon2) { MemberAnon2A } MemberAnon2;
|
|
|
|
typedef enum TopLevelTypedef { TopLevelTypedefA } TopLevelTypedef;
|
|
typedef enum SWIFT_NAME(Wrapper.Typedef) MemberTypedef { MemberTypedefA } MemberTypedef;
|
|
|
|
typedef NS_ENUM(long, TopLevelEnum) { TopLevelEnumA };
|
|
typedef NS_ENUM(long, MemberEnum) { MemberEnumA } SWIFT_NAME(Wrapper.Enum);
|
|
|
|
typedef NS_OPTIONS(long, TopLevelOptions) { TopLevelOptionsA = 1 };
|
|
typedef NS_OPTIONS(long, MemberOptions) { MemberOptionsA = 1} SWIFT_NAME(Wrapper.Options);
|