1 2@protocol P1 3- (void)protoMethod; 4- (void)protoMethodWithParam:(int)param; 5@end 6 7@protocol P3 8- (void)protoMethod; 9@end 10 11@protocol P2 <P1> 12- (void)protoMethod; 13@end 14 15@interface A 16- (void)method; 17- (void)protoMethod; 18+ (void)methodWithParam:(int)param; 19@end 20 21@interface B : A <P2, P3> 22- (void)method; 23- (void)protoMethod; 24@end 25 26@implementation B 27- (void)method { } 28+ (void)methodWithParam:(int)param { } 29@end 30 31@protocol P4 <P3> 32- (void)protoMethod; 33@end 34 35@interface B(cat) <P4> 36- (void)protoMethod; 37@end 38 39@interface B2 40@end 41 42@interface B2(cat) 43-(void)meth; 44@end 45 46@interface I2 : B2 47@end 48 49@implementation I2 50-(void)meth { } 51@end 52 53// RUN: c-index-test -test-load-source local %s | FileCheck %s 54// CHECK: overrides.m:12:9: ObjCInstanceMethodDecl=protoMethod:12:9 [Overrides @3:9] 55// CHECK: overrides.m:22:9: ObjCInstanceMethodDecl=method:22:9 [Overrides @16:9] 56// CHECK: overrides.m:23:9: ObjCInstanceMethodDecl=protoMethod:23:9 [Overrides @12:9, @8:9, @32:9, @17:9] 57// CHECK: overrides.m:27:9: ObjCInstanceMethodDecl=method:27:9 (Definition) [Overrides @16:9] 58// CHECK: overrides.m:28:9: ObjCClassMethodDecl=methodWithParam::28:9 (Definition) [Overrides @18:9] 59// CHECK: overrides.m:32:9: ObjCInstanceMethodDecl=protoMethod:32:9 [Overrides @8:9] 60// CHECK: overrides.m:36:9: ObjCInstanceMethodDecl=protoMethod:36:9 [Overrides @12:9, @8:9, @32:9, @17:9] 61// CHECK: overrides.m:50:8: ObjCInstanceMethodDecl=meth:50:8 (Definition) [Overrides @43:8] 62