blob: f646de4787cd7bb0211c2e2f3aa7d12f9560c022 [file] [log] [blame]
// Don't change this to @import; it tickles a particular former crash.
#import <Foundation.h>
@import ExternIntX;
#import "Protocols.h"
#import "used-by-both-headers.h"
@class ForwardClass;
@protocol ForwardProto;
void doSomething(ForwardClass *arg);
void doSomethingProto(id <ForwardProto> arg);
@interface Base
- (NSObject *)safeOverride:(ForwardClass *)arg;
- (NSObject *)unsafeOverrideParam:(NSObject *)arg;
- (ForwardClass *)unsafeOverrideReturn:(ForwardClass *)arg;
@end
@protocol ForwardClassUser
- (void)consumeForwardClass:(ForwardClass *)arg;
@property ForwardClass *forward;
@end
@interface Base ()
- (NSObject *)safeOverrideProto:(id <ForwardProto>)arg;
- (NSObject *)unsafeOverrideProtoParam:(NSObject *)arg;
- (id <ForwardProto>)unsafeOverrideProtoReturn:(id <ForwardProto>)arg;
@end
@class PartialBaseClass;
@class PartialSubClass /* : NSObject */;
void doSomethingPartialBase(PartialBaseClass *arg);
void doSomethingPartialSub(PartialSubClass *arg);
@interface Base ()
- (NSObject *)safeOverridePartialSub:(PartialSubClass *)arg;
- (NSObject *)unsafeOverridePartialSubParam:(NSObject *)arg;
- (PartialSubClass *)unsafeOverridePartialSubReturn:(PartialSubClass *)arg;
@end
typedef NS_ENUM(short, AALevel) {
AAA = 1,
BBB = 2
};
@interface ConflictingName1
@end
@protocol ConflictingName1
@end
@protocol ConflictingName2
@end
@interface ConflictingName2
@end
@interface WrapperInterface
typedef int NameInInterface;
@end
@protocol WrapperProto
typedef int NameInProtocol;
@end
@interface WrapperInterface (Category)
typedef int NameInCategory;
@end
@protocol ForwardProtoFromOtherFile;
@interface ClassThatHasAProtocolTypedPropertyButMembersAreNeverLoaded
@property (weak) id <ForwardProtoFromOtherFile> weakProtoProp;
@end
@interface GenericObjCClass<Param : id <ForwardProto>> : Base
- (instancetype)init;
@end