blob: 1fc2fa998ca47f4cabfce9257b655716e8798f53 [file] [log] [blame]
#import "ObjectiveC.h"
#import "BridgeTestFoundation.h"
@protocol NSAnsing
- (void) anse;
@end
__attribute__((swift_name("BetterAnsing")))
@protocol NSBetterAnsing <NSAnsing>
@end
@interface NSObject (NSAnsing)
@property Class<NSAnsing> qualifiedClassProp;
@end
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;
};
typedef long NSInteger;
@interface Gizmo : NSObject
- (Gizmo*) clone NS_RETURNS_RETAINED;
- (Gizmo*) duplicate;
- (Gizmo*) init OBJC_DESIGNATED_INITIALIZER;
- (Gizmo*) initWithBellsOn:(NSInteger)x OBJC_DESIGNATED_INITIALIZER;
- (instancetype) initWithoutBells:(NSInteger)x;
+ (instancetype) gizmoWithWhistles:(NSInteger)x;
- (void) fork NS_CONSUMES_SELF;
- (void) enumerateSubGizmos: (void (^ _Nullable)(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) runce;
- (void) funge;
- (void) foo;
- (void* _Nonnull) getBytes NS_RETURNS_INNER_POINTER;
- (void)doTheThingWithOptions:(nonnull NSDictionary *)options;
- (void)doTheOtherThingWithOptionalOptions:(nullable NSDictionary *)options;
@property (nonnull) void *innerProperty;
- (void* _Nonnull) innerProperty NS_RETURNS_INNER_POINTER;
- (void) setInnerProperty: (void*)p;
@property void (^block)(void);
@property NSInteger count;
+ (instancetype)gizmoWithStuff:(NSInteger)x;
+ (Gizmo*)gizmoWithExactlyStuff:(NSInteger)x;
@property id originalName __attribute__((swift_name("renamedProp")));
@end
@interface Guisemeau : Gizmo
- (id)objectAtIndexedSubscript:(NSInteger)idx;
- (void)setObject:(id)obj atIndexedSubscript:(NSInteger)idx;
@end
@interface NSView : NSObject
- (struct NSRect) convertRectFromBase: (struct NSRect) r;
@end
@interface CurryTest : NSObject
// no bridging, pod
- (NSInteger)pod:(NSInteger)x;
// requires bridging
- (NSString*)bridged:(NSString*)x;
// normal ownership conventions
- (CurryTest*)normalOwnership:(CurryTest*)x;
// weird ownership conventions
- (CurryTest*)weirdOwnership:(NS_CONSUMED CurryTest*)x
NS_RETURNS_RETAINED NS_CONSUMES_SELF;
// covariant result type
- (instancetype)returnsSelf;
// inner pointer result
- (void*)returnsInnerPointer NS_RETURNS_INNER_POINTER;
@end
#define CF_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
#define NS_ENUM(_type, _name) CF_ENUM(_type, _name)
struct NSRect NSMakeRect(double, double, double, double);
struct NSRect NSInsetRect(struct NSRect, double, double);
NSString *NSStringFromRect(struct NSRect r);
typedef NS_ENUM(NSInteger, NSRuncingOptions) {
NSRuncingMince = 123,
NSRuncingQuinceSliced = 4567,
NSRuncingQuinceJulienned = 5678,
NSRuncingQuinceDiced = 6789
};
#define CF_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
#define NS_OPTIONS(_type, _name) CF_OPTIONS(_type, _name)
typedef NS_OPTIONS(NSInteger, NSFungingMask) {
NSFungingAsset = 1,
NSFungingLiability = 2,
NSFungingToTheMax = (NSInteger)1U << 31
};