Home | History | Annotate | Download | only in Index
      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