1
2// Define a public header for the ObjC methods that are "visible" externally
3// and, thus, could be sub-classed. We should explore the path on which these
4// are sub-classed with unknown class by not inlining them.
5
6typedef signed char BOOL;
7typedef struct objc_class *Class;
8typedef struct objc_object {
9    Class isa;
10} *id;
11@protocol NSObject  - (BOOL)isEqual:(id)object; @end
12@interface NSObject <NSObject> {}
13+(id)alloc;
14+(id)new;
15-(id)init;
16-(id)autorelease;
17-(id)copy;
18- (Class)class;
19-(id)retain;
20@end
21
22@interface PublicClass : NSObject {
23  int value3;
24}
25- (int)getZeroPublic;
26
27- (int) value2;
28
29@property (readonly) int value1;
30
31@property int value3;
32- (int)value3;
33- (void)setValue3:(int)newValue;
34@end
35
36@interface PublicSubClass : PublicClass
37@end
38
39@interface PublicParent : NSObject
40- (int)getZeroOverridden;
41@end
42
43@interface PublicSubClass2 : PublicParent
44- (int) getZeroOverridden;
45@end
46
47