Files
swift-mirror/test/PrintAsObjC/Inputs/enums.h
Jordan Rose 02d2517866 [PrintAsObjC] Hack: Assume all option sets have typedefs. (#3851)
...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
2016-08-03 13:03:50 -07:00

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);