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@protocol P5 54-(void)kol; 55-(void)kol; 56@end 57 58@protocol P6 59@property (readonly) id prop1; 60@property (readonly) id prop2; 61-(void)meth; 62@end 63 64@interface I3 <P6> 65@property (readwrite) id prop1; 66@property (readonly) id bar; 67@end 68 69@interface I3() 70@property (readwrite) id prop2; 71@property (readwrite) id bar; 72-(void)meth; 73@end 74 75@interface B4 76-(id)prop; 77-(void)setProp:(id)prop; 78@end 79 80@interface I4 : B4 81@property (assign) id prop; 82@end 83 84@interface B5 85@end 86 87@interface I5 : B5 88-(void)meth; 89@end 90 91@interface B5(cat) 92-(void)meth; 93@end 94 95@implementation I5 96-(void)meth{} 97@end 98 99// RUN: c-index-test -test-load-source local %s | FileCheck %s 100// CHECK: overrides.m:12:9: ObjCInstanceMethodDecl=protoMethod:12:9 [Overrides @3:9] 101// CHECK: overrides.m:22:9: ObjCInstanceMethodDecl=method:22:9 [Overrides @16:9] 102// CHECK: overrides.m:23:9: ObjCInstanceMethodDecl=protoMethod:23:9 [Overrides @8:9, @12:9, @17:9, @32:9] 103// CHECK: overrides.m:27:9: ObjCInstanceMethodDecl=method:27:9 (Definition) [Overrides @16:9] 104// CHECK: overrides.m:28:9: ObjCClassMethodDecl=methodWithParam::28:9 (Definition) [Overrides @18:9] 105// CHECK: overrides.m:32:9: ObjCInstanceMethodDecl=protoMethod:32:9 [Overrides @8:9] 106// CHECK: overrides.m:36:9: ObjCInstanceMethodDecl=protoMethod:36:9 [Overrides @8:9, @12:9, @17:9, @32:9] 107// CHECK: overrides.m:50:8: ObjCInstanceMethodDecl=meth:50:8 (Definition) [Overrides @43:8] 108// CHECK: overrides.m:55:8: ObjCInstanceMethodDecl=kol:55:8 Extent=[55:1 - 55:12] 109// CHECK: overrides.m:65:26: ObjCInstanceMethodDecl=prop1:65:26 [Overrides @59:25] Extent=[65:26 - 65:31] 110// CHECK: overrides.m:65:26: ObjCInstanceMethodDecl=setProp1::65:26 Extent=[65:26 - 65:31] 111// CHECK: overrides.m:70:26: ObjCInstanceMethodDecl=prop2:70:26 [Overrides @60:25] Extent=[70:26 - 70:31] 112// CHECK: overrides.m:70:26: ObjCInstanceMethodDecl=setProp2::70:26 Extent=[70:26 - 70:31] 113// CHECK: overrides.m:71:26: ObjCInstanceMethodDecl=setBar::71:26 Extent=[71:26 - 71:29] 114// CHECK: overrides.m:72:8: ObjCInstanceMethodDecl=meth:72:8 [Overrides @61:8] Extent=[72:1 - 72:13] 115// CHECK: overrides.m:81:23: ObjCInstanceMethodDecl=prop:81:23 [Overrides @76:6] Extent=[81:23 - 81:27] 116// CHECK: overrides.m:81:23: ObjCInstanceMethodDecl=setProp::81:23 [Overrides @77:8] Extent=[81:23 - 81:27] 117// CHECK: overrides.m:92:8: ObjCInstanceMethodDecl=meth:92:8 Extent=[92:1 - 92:13] 118// CHECK: overrides.m:95:17: ObjCImplementationDecl=I5:95:17 (Definition) Extent=[95:1 - 97:2] 119// CHECK: overrides.m:96:8: ObjCInstanceMethodDecl=meth:96:8 (Definition) [Overrides @92:8] Extent=[96:1 - 96:14] 120