xref: /aosp_15_r20/external/clang/test/ASTMerge/Inputs/interface2.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// Matches
2*67e74705SXin Li@interface I1 {
3*67e74705SXin Li  int ivar1;
4*67e74705SXin Li}
5*67e74705SXin Li@end
6*67e74705SXin Li
7*67e74705SXin Li// Matches
8*67e74705SXin Li@interface I2 : I1 {
9*67e74705SXin Li  float ivar2;
10*67e74705SXin Li}
11*67e74705SXin Li@end
12*67e74705SXin Li
13*67e74705SXin Li// Ivar mismatch
14*67e74705SXin Li@interface I3 {
15*67e74705SXin Li  int ivar1;
16*67e74705SXin Li  float ivar2;
17*67e74705SXin Li}
18*67e74705SXin Li@end
19*67e74705SXin Li
20*67e74705SXin Li// Superclass mismatch
21*67e74705SXin Li@interface I4 : I1 {
22*67e74705SXin Li}
23*67e74705SXin Li@end
24*67e74705SXin Li
25*67e74705SXin Li// Methods match
26*67e74705SXin Li@interface I5
27*67e74705SXin Li+ (float)bar;
28*67e74705SXin Li- (int)foo;
29*67e74705SXin Li@end
30*67e74705SXin Li
31*67e74705SXin Li// Method mismatch
32*67e74705SXin Li@interface I6
33*67e74705SXin Li+ (float)foo;
34*67e74705SXin Li@end
35*67e74705SXin Li
36*67e74705SXin Li// Method mismatch
37*67e74705SXin Li@interface I7
38*67e74705SXin Li- (int)foo;
39*67e74705SXin Li+ (int)bar:(float)x;
40*67e74705SXin Li@end
41*67e74705SXin Li
42*67e74705SXin Li// Method mismatch
43*67e74705SXin Li@interface I8
44*67e74705SXin Li- (int)foo;
45*67e74705SXin Li+ (int)bar:(float)x, ...;
46*67e74705SXin Li@end
47*67e74705SXin Li
48*67e74705SXin Li// Matching protocol
49*67e74705SXin Li@protocol P0
50*67e74705SXin Li+ (int)foo;
51*67e74705SXin Li- (int)bar:(float)x;
52*67e74705SXin Li@end
53*67e74705SXin Li
54*67e74705SXin Li// Protocol with mismatching method
55*67e74705SXin Li@protocol P1
56*67e74705SXin Li+ (int)foo;
57*67e74705SXin Li- (int)bar:(double)x;
58*67e74705SXin Li@end
59*67e74705SXin Li
60*67e74705SXin Li// Interface with protocol
61*67e74705SXin Li@interface I9 <P0>
62*67e74705SXin Li+ (int)foo;
63*67e74705SXin Li- (int)bar:(float)x;
64*67e74705SXin Li@end
65*67e74705SXin Li
66*67e74705SXin Li// Protocol with protocol
67*67e74705SXin Li@protocol P2 <P0>
68*67e74705SXin Li- (float)wibble:(int)a1 second:(int)a2;
69*67e74705SXin Li@end
70*67e74705SXin Li
71*67e74705SXin Li// Forward-declared interface
72*67e74705SXin Li@class I10; @interface I12 @end
73*67e74705SXin Li@interface I11
74*67e74705SXin Li@end
75*67e74705SXin Li
76*67e74705SXin Li// Forward-declared protocols
77*67e74705SXin Li@protocol P3, P4;
78*67e74705SXin Li@protocol P5
79*67e74705SXin Li- (double)honk:(int)a;
80*67e74705SXin Li@end
81*67e74705SXin Li
82*67e74705SXin Li// Interface with implementation
83*67e74705SXin Li@interface I13
84*67e74705SXin Li@end
85*67e74705SXin Li
86*67e74705SXin Li@implementation I13
87*67e74705SXin Li@end
88*67e74705SXin Li
89*67e74705SXin Li@interface I13b
90*67e74705SXin Li@end
91*67e74705SXin Li
92*67e74705SXin Li@implementation I13b
93*67e74705SXin Li@end
94*67e74705SXin Li
95*67e74705SXin Li// Implementation by itself
96*67e74705SXin Li@implementation I14 : I12
97*67e74705SXin Li@end
98*67e74705SXin Li
99*67e74705SXin Li@implementation I15 : I11
100*67e74705SXin Li@end
101