blob: c9cf43ecb54644751009789047a3314397afb1d0 [file] [log] [blame]
@import ObjectiveC;
@import Foundation;
#define NS_RETURNS_RETAINED __attribute__((ns_returns_retained))
#define NS_CONSUMES_SELF __attribute__((ns_consumes_self))
#define NS_CONSUMED __attribute__((ns_consumed))
struct Rect {
float x;
float y;
float width;
float height;
};
struct NSRect {
struct NSPoint {
double x;
double y;
} origin;
struct NSSize {
double width;
double height;
} size;
};
struct Fob {
unsigned long a;
unsigned b;
unsigned c;
unsigned long d;
} Fob;
typedef long NSInteger;
@interface Gizmo : NSObject
- (Gizmo*) clone NS_RETURNS_RETAINED;
- (Gizmo*) duplicate;
- (Gizmo*) initWithBellsOn:(NSInteger)x;
- (void) fork NS_CONSUMES_SELF;
- (void) enumerateSubGizmos: (void (^)(Gizmo*))f;
+ (void) consume: (NS_CONSUMED Gizmo*) gizmo;
+ (void) inspect: (Gizmo*) gizmo;
+ (void) runWithRect: (struct Rect) rect andGizmo: (Gizmo*) gizmo;
- (struct NSRect) frame;
- (void) setFrame: (struct NSRect) rect;
- (void) frob;
- (void) test: (struct Fob) fob;
+ (void) runce;
@end
@interface BaseClassForMethodFamilies : NSObject
- (BaseClassForMethodFamilies *)fakeInitFamily __attribute__((objc_method_family(init)));
@end
static inline int innerZero(void) { return 0; }
static inline int zero(void) { return innerZero(); }
static inline int wrappedZero(void) { return zero(); }
static inline int alwaysInlineNumber(void) __attribute__((always_inline)) {
return 17;
}
extern int getInt(void);
static inline int wrappedGetInt(void) { return getInt(); }
static inline int zeroRedeclared(void);
static inline int wrappedZeroRedeclared(void) { return zeroRedeclared(); }
static inline int zeroRedeclared(void) { return innerZero(); }
static int staticButNotInline(void) { return innerZero(); }
@interface NSView : NSObject
- (struct NSRect) convertRectFromBase: (struct NSRect) r;
@end
struct NSRect NSMakeRect(double, double, double, double);
struct NSRect NSInsetRect(struct NSRect, double, double);
NSString *NSStringFromRect(struct NSRect r);
@protocol NSRuncing
- (void)runce;
- (void)foo;
@end
@protocol NSFunging
- (void)funge;
- (void)foo;
@end
@interface NSSpoon <NSRuncing, NSFunging>
- (void)runce;
- (void)funge;
- (void)foo;
@end
typedef NS_ENUM(unsigned short, NSRuncingOptions) {
NSRuncingMince = 123,
NSRuncingQuinceSliced = 4567,
NSRuncingQuinceJulienned = 5678,
NSRuncingQuinceDiced = 6789,
};
typedef NS_ENUM(int, NSRadixedOptions) {
NSRadixedOctal = 0755,
NSRadixedHex = 0xFFFF,
};
typedef NS_ENUM(int, NSNegativeOptions) {
NSNegativeFoo = -1,
NSNegativeBar = -0x7FFFFFFF - 1,
};
typedef NS_ENUM(unsigned, NSNegativeUnsignedOptions) {
NSNegativeUnsignedFoo = -1,
NSNegativeUnsignedBar = -0x7FFFFFFF - 1,
};
typedef NS_ENUM(unsigned, NeverActuallyMentionedByName) {
ValueOfThatEnumType = 5
};
@interface TestThatEnumType
- (instancetype)init;
- (NeverActuallyMentionedByName)getValue;
@end
enum RawEnumInGizmo {
InGizmoOne=0x7FFFFFFF,
InGizmoTwo,
InGizmoThree
};
struct StructOfNSStrings {
__unsafe_unretained NSString *a;
__unsafe_unretained NSString *b;
__unsafe_unretained NSString *c;
__unsafe_unretained NSString *d;
};
struct StructOfNSStrings useStructOfNSStringsInObjC(struct StructOfNSStrings);