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