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 int ivar2; 17*0333dd95SReid Kleckner} 18*0333dd95SReid Kleckner@end 19*0333dd95SReid Kleckner 20*0333dd95SReid Kleckner// Superclass mismatch 21*0333dd95SReid Kleckner@interface I4 : I2 { 22*0333dd95SReid Kleckner} 23*0333dd95SReid Kleckner@end 24*0333dd95SReid Kleckner 25*0333dd95SReid Kleckner// Methods match 26*0333dd95SReid Kleckner@interface I5 27*0333dd95SReid Kleckner- (int)foo; 28*0333dd95SReid Kleckner+ (float)bar; 29*0333dd95SReid Kleckner@end 30*0333dd95SReid Kleckner 31*0333dd95SReid Kleckner// Method mismatch 32*0333dd95SReid Kleckner@interface I6 33*0333dd95SReid Kleckner- (int)foo; 34*0333dd95SReid Kleckner+ (int)foo; 35*0333dd95SReid Kleckner@end 36*0333dd95SReid Kleckner 37*0333dd95SReid Kleckner// Method mismatch 38*0333dd95SReid Kleckner@interface I7 39*0333dd95SReid Kleckner- (int)foo; 40*0333dd95SReid Kleckner+ (int)bar:(int)x; 41*0333dd95SReid Kleckner@end 42*0333dd95SReid Kleckner 43*0333dd95SReid Kleckner// Method mismatch 44*0333dd95SReid Kleckner@interface I8 45*0333dd95SReid Kleckner- (int)foo; 46*0333dd95SReid Kleckner+ (int)bar:(float)x; 47*0333dd95SReid Kleckner@end 48*0333dd95SReid Kleckner 49*0333dd95SReid Kleckner// Matching protocol 50*0333dd95SReid Kleckner@protocol P0 51*0333dd95SReid Kleckner+ (int)foo; 52*0333dd95SReid Kleckner- (int)bar:(float)x; 53*0333dd95SReid Kleckner@end 54*0333dd95SReid Kleckner 55*0333dd95SReid Kleckner// Protocol with mismatching method 56*0333dd95SReid Kleckner@protocol P1 57*0333dd95SReid Kleckner+ (int)foo; 58*0333dd95SReid Kleckner- (int)bar:(float)x; 59*0333dd95SReid Kleckner@end 60*0333dd95SReid Kleckner 61*0333dd95SReid Kleckner// Interface with protocol 62*0333dd95SReid Kleckner@interface I9 <P0> 63*0333dd95SReid Kleckner+ (int)foo; 64*0333dd95SReid Kleckner- (int)bar:(float)x; 65*0333dd95SReid Kleckner@end 66*0333dd95SReid Kleckner 67*0333dd95SReid Kleckner// Protocol with protocol 68*0333dd95SReid Kleckner@protocol P2 <P0> 69*0333dd95SReid Kleckner- (float)wibble:(int)a1 second:(int)a2; 70*0333dd95SReid Kleckner@end 71*0333dd95SReid Kleckner 72*0333dd95SReid Kleckner// Forward-declared interfaces 73*0333dd95SReid Kleckner@class I10, I11; 74*0333dd95SReid Kleckner@interface I12 75*0333dd95SReid Kleckner@end 76*0333dd95SReid Kleckner 77*0333dd95SReid Kleckner// Forward-declared protocols 78*0333dd95SReid Kleckner@protocol P3, P5; 79*0333dd95SReid Kleckner@protocol P4 80*0333dd95SReid Kleckner- (double)honk:(int)a; 81*0333dd95SReid Kleckner@end 82*0333dd95SReid Kleckner 83*0333dd95SReid Kleckner// Interface with implementation 84*0333dd95SReid Kleckner@interface I13 85*0333dd95SReid Kleckner@end 86*0333dd95SReid Kleckner 87*0333dd95SReid Kleckner@implementation I13 88*0333dd95SReid Kleckner@end 89*0333dd95SReid Kleckner 90*0333dd95SReid Kleckner@interface I13a 91*0333dd95SReid Kleckner@end 92*0333dd95SReid Kleckner 93*0333dd95SReid Kleckner@implementation I13a 94*0333dd95SReid Kleckner@end 95*0333dd95SReid Kleckner 96*0333dd95SReid Kleckner// Implementation by itself 97*0333dd95SReid Kleckner@implementation I14 : I12 98*0333dd95SReid Kleckner@end 99*0333dd95SReid Kleckner 100*0333dd95SReid Kleckner@implementation I15 : I12 101*0333dd95SReid Kleckner@end 102*0333dd95SReid Kleckner 103*0333dd95SReid Kleckner@interface ImportSelectorSLoc { } 104*0333dd95SReid Kleckner-(int)addInt:(int)a toInt:(int)b moduloInt:(int)c; // don't crash here 105*0333dd95SReid Kleckner@end 106