[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / clang / test / Index / overrides.m
blobd2f1506fef5f599f6c6d65eaca6f06868517747a
2 @protocol P1
3 - (void)protoMethod;
4 - (void)protoMethodWithParam:(int)param;
5 @end
7 @protocol P3
8 - (void)protoMethod;
9 @end
11 @protocol P2 <P1>
12 - (void)protoMethod;
13 @end
15 @interface A
16 - (void)method;
17 - (void)protoMethod;
18 + (void)methodWithParam:(int)param;
19 @end
21 @interface B : A <P2, P3>
22 - (void)method;
23 - (void)protoMethod;
24 @end
26 @implementation B
27 - (void)method { }
28 + (void)methodWithParam:(int)param { }
29 @end
31 @protocol P4 <P3>
32 - (void)protoMethod;
33 @end
35 @interface B(cat) <P4>
36 - (void)protoMethod;
37 @end
39 @interface B2
40 @end
42 @interface B2(cat)
43 -(void)meth;
44 @end
46 @interface I2 : B2
47 @end
49 @implementation I2
50 -(void)meth { }
51 @end
53 @protocol P5
54 -(void)kol;
55 -(void)kol;
56 @end
58 @protocol P6
59 @property (readonly) id prop1;
60 @property (readonly) id prop2;
61 -(void)meth;
62 @end
64 @interface I3 <P6>
65 @property (readwrite) id prop1;
66 @property (readonly) id bar;
67 @end
69 @interface I3()
70 @property (readwrite) id prop2;
71 @property (readwrite) id bar;
72 -(void)meth;
73 @end
75 @interface B4
76 -(id)prop;
77 -(void)setProp:(id)prop;
78 @end
80 @interface I4 : B4
81 @property (assign) id prop;
82 @end
84 @interface B5
85 @end
87 @interface I5 : B5
88 -(void)meth;
89 @end
91 @interface B5(cat)
92 -(void)meth;
93 @end
95 @implementation I5
96 -(void)meth{}
97 @end
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]