1 #ifndef SOMEKIT_H
2 #define SOMEKIT_H
3 
4 __attribute__((objc_root_class))
5 @interface A
6 -(A*)transform:(A*)input;
7 -(A*)transform:(A*)input integer:(int)integer;
8 
9 @property (nonatomic, readonly, retain) A* someA;
10 @property (nonatomic, retain) A* someOtherA;
11 
12 @property (nonatomic) int intValue;
13 @end
14 
15 @interface B : A
16 @end
17 
18 @interface C : A
19 - (instancetype)init;
20 - (instancetype)initWithA:(A*)a;
21 @end
22 
23 @interface ProcessInfo : A
24 +(instancetype)processInfo;
25 @end
26 
27 @interface A(NonNullProperties)
28 @property (nonatomic, readwrite, retain) A *nonnullAInstance;
29 @property (class, nonatomic, readwrite, retain) A *nonnullAInstance;
30 
31 @property (nonatomic, readwrite, retain) A *nonnullAClass;
32 @property (class, nonatomic, readwrite, retain) A *nonnullAClass;
33 
34 @property (nonatomic, readwrite, retain) A *nonnullABoth;
35 @property (class, nonatomic, readwrite, retain) A *nonnullABoth;
36 @end
37 
38 #import <SomeKit/SomeKitExplicitNullability.h>
39 
40 extern int *global_int_ptr;
41 
42 int *global_int_fun(int *ptr, int *ptr2);
43 
44 #define SOMEKIT_DOUBLE double
45 
46 __attribute__((objc_root_class))
47 @interface OverriddenTypes
48 -(int *)methodToMangle:(int *)ptr1 second:(int *)ptr2;
49 @property int *intPropertyToMangle;
50 @end
51 
52 @interface A(ImplicitGetterSetters)
53 @property (nonatomic, readonly, retain) A *implicitGetOnlyInstance;
54 @property (class, nonatomic, readonly, retain) A *implicitGetOnlyClass;
55 
56 @property (nonatomic, readwrite, retain) A *implicitGetSetInstance;
57 @property (class, nonatomic, readwrite, retain) A *implicitGetSetClass;
58 @end
59 
60 #endif
61