blob: 320e4ab9a6bae247ace33fdfb52f87c487f0b617 [file] [log] [blame]
@import Foundation;
__attribute__((objc_root_class))
@interface Base
- (instancetype)returnMyself;
@end
@interface PropertyAndMethodCollisionBase
- (void)object:(id)obj doSomething:(SEL)selector;
+ (void)classRef:(id)obj doSomething:(SEL)selector;
@end
@interface PropertyAndMethodCollision : PropertyAndMethodCollisionBase
@property id object;
@property (class) id classRef;
@end
@interface PropertyAndMethodReverseCollisionBase
@property id object;
@property (class) id classRef;
@end
@interface PropertyAndMethodReverseCollision : PropertyAndMethodReverseCollisionBase
- (void)object:(id)obj doSomething:(SEL)selector;
+ (void)classRef:(id)obj doSomething:(SEL)selector;
@end
@interface PropertyAndMethodCollisionInOneClass
- (void)object;
+ (void)classRef;
@property (getter=getObject) id object;
@property (class,getter=getClassRef) id classRef;
@end
@interface PropertyAndMethodReverseCollisionInOneClass
@property (getter=getObject) id object;
@property (class,getter=getClassRef) id classRef;
- (void)object;
+ (void)classRef;
@end
@protocol PropertyProto
@property id protoProp;
@property(readonly) id protoPropRO;
@property(class) id protoClassProp;
@property(class, readonly) id protoClassPropRO;
@end
@interface PropertyAndMethodCollision () <PropertyProto>
- (id)protoProp;
- (id)protoPropRO;
+ (id)protoClassProp;
+ (id)protoClassPropRO;
@end
@interface SubscriptAndProperty : NSObject
@property (readonly) int x;
- (id)objectAtIndexedSubscript:(int)i;
@end
@interface SubscriptAndProperty ()
@property int x;
- (void)setObject:(id)obj atIndexedSubscript:(int)i;
@end
@protocol SubscriptAndPropertyProto <NSObject>
@property(readonly) int x;
- (id)objectAtIndexedSubscript:(int)i;
@end
@interface SubscriptAndPropertyWithProto : NSObject
@end
@interface SubscriptAndPropertyWithProto (AdoptTheProtocol) <SubscriptAndPropertyProto>
@end
@interface SubscriptAndPropertyWithProto (DeclareTheSetters)
@property int x;
- (void)setObject:(id)obj atIndexedSubscript:(int)i;
@end
@protocol ProtoOrClass
@property int thisIsTheProto;
@end
#pragma mark Constant global properties
extern const int MAX;
extern NSString * const SomeImageName;
extern NSNumber * const SomeNumber;
__weak id globalWeakVar;
@protocol Incomplete
- (id)getObject;
- (id)getObjectFromVarArgs:(id)first, ...;
@end
@protocol IncompleteOptional
@optional
- (id)getObject;
- (id)getObjectFromVarArgs:(id)first, ...;
@end
@interface StrangeSelectors
- (void)foo:(int)a bar:(int)b :(int)c;
+ (void)cStyle:(int)a, int b, int c;
+ (StrangeSelectors *):(int)x; // factory-method-like
+ (StrangeSelectors *):(int)x b:(int)y __attribute__((swift_name("init(a:b:)")));
- (void):(int)x;
- (void):(int)x :(int)y __attribute__((swift_name("empty(_:_:)")));
@end
@interface DeprecatedFactoryMethod
+ (instancetype)deprecatedFactoryMethod __attribute__((deprecated("use something newer")));
@end
@interface RepeatedMembers : NSObject
- (void)repeatedMethod;
- (void)anotherMethod;
- (void)repeatedMethod __attribute__((deprecated("use something newer")));
@end
// rdar://problem/19726164
@protocol FooDelegate <NSObject>
@property (nonatomic, assign, readonly, getter=isStarted) BOOL started;
@end
// rdar://problem/18847642
@interface NonNullDefaultInit
-(nonnull instancetype)init;
@end
@interface NonNullDefaultInitSub : NonNullDefaultInit
+ (null_unspecified instancetype)sub;
@end
@interface SomeCell : NSObject
-(instancetype)initString:(NSString *)string;
@property (nonatomic,readonly,getter=isEnabled) BOOL enabled;
@end
@interface DesignatedInitRoot : NSObject
- (instancetype)init __attribute__((objc_designated_initializer));
@end
@interface DesignatedInitBase : DesignatedInitRoot
- (instancetype)initWithInt:(NSInteger)value __attribute__((objc_designated_initializer));
@end
@protocol ExplicitSetterProto
@property (readonly) id foo;
- (void)setFoo:(id)foo;
@end
@protocol OptionalSetterProto
@property (readonly) id bar;
@optional
- (void)setBar:(id)bar;
@end
typedef NSObject <NSCopying> *CopyableNSObject;
typedef SomeCell <NSCopying> *CopyableSomeCell;
@interface Printing : NSObject
- (void)print;
- (void)print:(id)thing;
- (void)print:(id)thing options:(id)options;
+ (void)print;
+ (void)print:(id)thing;
+ (void)print:(id)thing options:(id)options;
@end
@interface FailBase : NSObject
- (nullable instancetype)initWithValue:(NSInteger)val error:(NSError **)error;
+ (BOOL)processValueAndReturnError:(NSError **)error;
@end
@interface CallbackBase : NSObject
- (void)performWithHandler:(void(^ _Nonnull)(void))handler;
- (void)performWithOptHandler:(void(^ _Nullable)(void))handler;
- (void)performWithNonescapingHandler:(void(__attribute__((noescape)) ^ _Nonnull)(void))handler;
- (void)performWithOptNonescapingHandler:(void(__attribute__((noescape)) ^ _Nullable)(void))handler;
@end
@interface SelectorSplittingAccessors : NSObject
// Note the custom setter name here; this is important.
@property (setter=takeFooForBar:) BOOL fooForBar;
@end
@interface InstancetypeAccessor : NSObject
@property (class, readonly) InstancetypeAccessor *prop;
+ (instancetype)prop;
@end
typedef NSArray<NSString *> *NSStringArray;
@interface BridgedTypedefs : NSObject
@property (readonly,nonnull) NSArray<NSStringArray> *arrayOfArrayOfStrings;
@end
typedef NSString * _Nonnull (*FPTypedef)(NSString * _Nonnull);
extern FPTypedef _Nonnull getFP(void);