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