xref: /aosp_15_r20/external/ksp/test-utils/testData/api/libOrigins.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1 /*
2  * Copyright 2020 Google LLC
3  * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 // TEST PROCESSOR: LibOriginsProcessor
19 // EXPECTED:
20 // annotation: Anno1: KOTLIN_LIB
21 // annotation: Anno2: JAVA_LIB
22 // annotation: Anno3: KOTLIN
23 // annotation: Anno4: JAVA
24 // classifier ref: Anno1: KOTLIN_LIB
25 // classifier ref: Anno1: KOTLIN_LIB
26 // classifier ref: Anno2: JAVA_LIB
27 // classifier ref: Anno2: KOTLIN_LIB
28 // classifier ref: Anno3: KOTLIN
29 // classifier ref: Anno3: KOTLIN_LIB
30 // classifier ref: Anno4: JAVA
31 // classifier ref: Anno4: KOTLIN_LIB
32 // classifier ref: Annotation: KOTLIN_LIB
33 // classifier ref: Annotation: KOTLIN_LIB
34 // classifier ref: Annotation: KOTLIN_LIB
35 // classifier ref: Annotation: KOTLIN_LIB
36 // classifier ref: Any: JAVA_LIB
37 // classifier ref: Any: JAVA_LIB
38 // classifier ref: Any: JAVA_LIB
39 // classifier ref: Any: KOTLIN_LIB
40 // classifier ref: Any: KOTLIN_LIB
41 // classifier ref: Any: KOTLIN_LIB
42 // classifier ref: ArrayList<(T2..T2?)>: JAVA_LIB
43 // classifier ref: Byte: JAVA_LIB
44 // classifier ref: Byte: JAVA_LIB
45 // classifier ref: Byte: JAVA_LIB
46 // classifier ref: Int: KOTLIN_LIB
47 // classifier ref: Int: KOTLIN_LIB
48 // classifier ref: Int: KOTLIN_LIB
49 // classifier ref: Int: KOTLIN_LIB
50 // classifier ref: Int: KOTLIN_LIB
51 // classifier ref: Int: KOTLIN_LIB
52 // classifier ref: Int: KOTLIN_LIB
53 // classifier ref: Int: KOTLIN_LIB
54 // classifier ref: Int: KOTLIN_LIB
55 // classifier ref: Int: KOTLIN_LIB
56 // classifier ref: Int: KOTLIN_LIB
57 // classifier ref: Int: KOTLIN_LIB
58 // classifier ref: JavaLib: JAVA_LIB
59 // classifier ref: JavaLib: JAVA_LIB
60 // classifier ref: JavaLib: JAVA_LIB
61 // classifier ref: JavaLib<T2>: JAVA_LIB
62 // classifier ref: KotlinLibClass: KOTLIN_LIB
63 // classifier ref: KotlinLibClass: KOTLIN_LIB
64 // classifier ref: KotlinLibClass: KOTLIN_LIB
65 // classifier ref: KotlinLibClass: KOTLIN_LIB
66 // classifier ref: KotlinLibClass: KOTLIN_LIB
67 // classifier ref: KotlinLibClass: KOTLIN_LIB
68 // classifier ref: KotlinLibClass<T1>: KOTLIN_LIB
69 // classifier ref: KotlinSrcClass: SYNTHETIC
70 // classifier ref: List<Int>: KOTLIN_LIB
71 // classifier ref: List<T1>: KOTLIN_LIB
72 // classifier ref: List<T1>: KOTLIN_LIB
73 // classifier ref: List<T1>: KOTLIN_LIB
74 // classifier ref: List<T1>: KOTLIN_LIB
75 // classifier ref: Long: JAVA
76 // classifier ref: Long: JAVA
77 // classifier ref: Long: JAVA
78 // classifier ref: Object: JAVA
79 // classifier ref: Set: KOTLIN
80 // classifier ref: Set: KOTLIN
81 // classifier ref: Set: KOTLIN
82 // classifier ref: Set: KOTLIN
83 // classifier ref: Set<T3>: SYNTHETIC
84 // classifier ref: Short: KOTLIN
85 // classifier ref: Short: KOTLIN
86 // classifier ref: Short: KOTLIN
87 // classifier ref: Short: KOTLIN
88 // classifier ref: Short: KOTLIN
89 // classifier ref: Short: KOTLIN
90 // classifier ref: Short: KOTLIN
91 // classifier ref: Short: KOTLIN
92 // classifier ref: Short: KOTLIN
93 // classifier ref: Short: SYNTHETIC
94 // classifier ref: Short: SYNTHETIC
95 // classifier ref: Short: SYNTHETIC
96 // classifier ref: T1: KOTLIN_LIB
97 // classifier ref: T1: KOTLIN_LIB
98 // classifier ref: T1: KOTLIN_LIB
99 // classifier ref: T1: KOTLIN_LIB
100 // classifier ref: T1: KOTLIN_LIB
101 // classifier ref: T1: KOTLIN_LIB
102 // classifier ref: T2: JAVA_LIB
103 // classifier ref: T2: JAVA_LIB
104 // classifier ref: T2: JAVA_LIB
105 // classifier ref: T3: KOTLIN
106 // classifier ref: T3: KOTLIN
107 // classifier ref: T3: KOTLIN
108 // classifier ref: T3: KOTLIN
109 // classifier ref: T3: SYNTHETIC
110 // classifier ref: T4: JAVA
111 // classifier ref: T4: JAVA
112 // declaration: <init>: KOTLIN
113 // declaration: foo.bar.Anno1.<init>: KOTLIN_LIB
114 // declaration: foo.bar.Anno1: KOTLIN_LIB
115 // declaration: foo.bar.Anno2.<init>: KOTLIN_LIB
116 // declaration: foo.bar.Anno2: KOTLIN_LIB
117 // declaration: foo.bar.Anno3.<init>: KOTLIN_LIB
118 // declaration: foo.bar.Anno3: KOTLIN_LIB
119 // declaration: foo.bar.Anno4.<init>: KOTLIN_LIB
120 // declaration: foo.bar.Anno4: KOTLIN_LIB
121 // declaration: foo.bar.JavaLib.<init>: JAVA_LIB
122 // declaration: foo.bar.JavaLib.T2: JAVA_LIB
123 // declaration: foo.bar.JavaLib.T2: JAVA_LIB
124 // declaration: foo.bar.JavaLib.f1: JAVA_LIB
125 // declaration: foo.bar.JavaLib.javaLibField: JAVA_LIB
126 // declaration: foo.bar.JavaLib.javaLibFunction: JAVA_LIB
127 // declaration: foo.bar.JavaLib: JAVA_LIB
128 // declaration: foo.bar.JavaSrc.<init>: SYNTHETIC
129 // declaration: foo.bar.JavaSrc.LinkedList: JAVA
130 // declaration: foo.bar.JavaSrc.f2: JAVA
131 // declaration: foo.bar.JavaSrc.javaSrcField: JAVA
132 // declaration: foo.bar.JavaSrc.javaSrcFunction: JAVA
133 // declaration: foo.bar.JavaSrc.p0: JAVA
134 // declaration: foo.bar.JavaSrc: JAVA
135 // declaration: foo.bar.KotlinLibClass.<init>: KOTLIN_LIB
136 // declaration: foo.bar.KotlinLibClass.T1: KOTLIN_LIB
137 // declaration: foo.bar.KotlinLibClass.T1: KOTLIN_LIB
138 // declaration: foo.bar.KotlinLibClass.f1: KOTLIN_LIB
139 // declaration: foo.bar.KotlinLibClass.f2: KOTLIN_LIB
140 // declaration: foo.bar.KotlinLibClass.f3: KOTLIN_LIB
141 // declaration: foo.bar.KotlinLibClass.p1: KOTLIN_LIB
142 // declaration: foo.bar.KotlinLibClass.p2: KOTLIN_LIB
143 // declaration: foo.bar.KotlinLibClass.p3: KOTLIN_LIB
144 // declaration: foo.bar.KotlinLibClass: KOTLIN_LIB
145 // declaration: foo.bar.KotlinSrcClass.T3: KOTLIN
146 // declaration: foo.bar.KotlinSrcClass.g1: KOTLIN
147 // declaration: foo.bar.KotlinSrcClass.g2: KOTLIN
148 // declaration: foo.bar.KotlinSrcClass.g3: KOTLIN
149 // declaration: foo.bar.KotlinSrcClass.q1: KOTLIN
150 // declaration: foo.bar.KotlinSrcClass.q2: KOTLIN
151 // declaration: foo.bar.KotlinSrcClass.q3: KOTLIN
152 // declaration: foo.bar.KotlinSrcClass: KOTLIN
153 // declaration: foo.bar.kotlinLibFuntion: KOTLIN_LIB
154 // declaration: foo.bar.kotlinLibProperty: KOTLIN_LIB
155 // declaration: foo.bar.kotlinSrcFuntion: KOTLIN
156 // declaration: foo.bar.kotlinSrcProperty: KOTLIN
157 // property accessor: kotlinLibProperty.getter(): KOTLIN_LIB
158 // property accessor: kotlinSrcProperty.getter(): SYNTHETIC
159 // property accessor: p1.getter(): KOTLIN_LIB
160 // property accessor: p2.getter(): KOTLIN_LIB
161 // property accessor: p3.getter(): KOTLIN_LIB
162 // property accessor: q1.getter(): SYNTHETIC
163 // property accessor: q2.getter(): SYNTHETIC
164 // property accessor: q3.getter(): SYNTHETIC
165 // reference: Anno1: KOTLIN_LIB
166 // reference: Anno1: KOTLIN_LIB
167 // reference: Anno2: JAVA_LIB
168 // reference: Anno2: KOTLIN_LIB
169 // reference: Anno3: KOTLIN
170 // reference: Anno3: KOTLIN_LIB
171 // reference: Anno4: JAVA
172 // reference: Anno4: KOTLIN_LIB
173 // reference: Annotation: KOTLIN_LIB
174 // reference: Annotation: KOTLIN_LIB
175 // reference: Annotation: KOTLIN_LIB
176 // reference: Annotation: KOTLIN_LIB
177 // reference: Any: JAVA_LIB
178 // reference: Any: JAVA_LIB
179 // reference: Any: JAVA_LIB
180 // reference: Any: KOTLIN_LIB
181 // reference: Any: KOTLIN_LIB
182 // reference: Any: KOTLIN_LIB
183 // reference: Any: SYNTHETIC
184 // reference: Any?: SYNTHETIC
185 // reference: ArrayList<(T2..T2?)>: JAVA_LIB
186 // reference: Byte: JAVA_LIB
187 // reference: Byte: JAVA_LIB
188 // reference: Byte: JAVA_LIB
189 // reference: Int: KOTLIN_LIB
190 // reference: Int: KOTLIN_LIB
191 // reference: Int: KOTLIN_LIB
192 // reference: Int: KOTLIN_LIB
193 // reference: Int: KOTLIN_LIB
194 // reference: Int: KOTLIN_LIB
195 // reference: Int: KOTLIN_LIB
196 // reference: Int: KOTLIN_LIB
197 // reference: Int: KOTLIN_LIB
198 // reference: Int: KOTLIN_LIB
199 // reference: Int: KOTLIN_LIB
200 // reference: Int: KOTLIN_LIB
201 // reference: JavaLib<T2>: JAVA_LIB
202 // reference: JavaSrc: SYNTHETIC
203 // reference: KotlinLibClass<T1>: KOTLIN_LIB
204 // reference: KotlinSrcClass<T3>: KOTLIN
205 // reference: List<Int>: KOTLIN_LIB
206 // reference: List<T1>: KOTLIN_LIB
207 // reference: List<T1>: KOTLIN_LIB
208 // reference: List<T1>: KOTLIN_LIB
209 // reference: List<T1>: KOTLIN_LIB
210 // reference: Long: JAVA
211 // reference: Long: JAVA
212 // reference: Long: JAVA
213 // reference: Object: JAVA
214 // reference: Set: KOTLIN
215 // reference: Set: KOTLIN
216 // reference: Set: KOTLIN
217 // reference: Set: KOTLIN
218 // reference: Set<T3>: SYNTHETIC
219 // reference: Short: KOTLIN
220 // reference: Short: KOTLIN
221 // reference: Short: KOTLIN
222 // reference: Short: KOTLIN
223 // reference: Short: KOTLIN
224 // reference: Short: KOTLIN
225 // reference: Short: KOTLIN
226 // reference: Short: KOTLIN
227 // reference: Short: KOTLIN
228 // reference: Short: SYNTHETIC
229 // reference: Short: SYNTHETIC
230 // reference: Short: SYNTHETIC
231 // reference: T1: KOTLIN_LIB
232 // reference: T1: KOTLIN_LIB
233 // reference: T1: KOTLIN_LIB
234 // reference: T1: KOTLIN_LIB
235 // reference: T1: KOTLIN_LIB
236 // reference: T1: KOTLIN_LIB
237 // reference: T2: JAVA_LIB
238 // reference: T2: JAVA_LIB
239 // reference: T2: JAVA_LIB
240 // reference: T3: KOTLIN
241 // reference: T3: KOTLIN
242 // reference: T3: KOTLIN
243 // reference: T3: KOTLIN
244 // reference: T3: SYNTHETIC
245 // reference: T4: JAVA
246 // reference: T4: JAVA
247 // type arg: INVARIANT Int: KOTLIN_LIB
248 // type arg: INVARIANT Short: KOTLIN
249 // type arg: INVARIANT T1: KOTLIN_LIB
250 // type arg: INVARIANT T1: KOTLIN_LIB
251 // type arg: INVARIANT T1: KOTLIN_LIB
252 // type arg: INVARIANT T1: KOTLIN_LIB
253 // type arg: INVARIANT T1: KOTLIN_LIB
254 // type arg: INVARIANT T2: JAVA_LIB
255 // type arg: INVARIANT T2: JAVA_LIB
256 // type arg: INVARIANT T3: KOTLIN
257 // type arg: INVARIANT T3: KOTLIN
258 // type arg: INVARIANT T3: KOTLIN
259 // type arg: INVARIANT T3: SYNTHETIC
260 // value param: p0: JAVA_LIB
261 // value param: p1: JAVA_LIB
262 // value param: p1: KOTLIN_LIB
263 // value param: p2: KOTLIN_LIB
264 // value param: p4: KOTLIN_LIB
265 // value param: p5: KOTLIN_LIB
266 // value param: p6: KOTLIN_LIB
267 // value param: q1: KOTLIN
268 // value param: q2: KOTLIN
269 // value param: q4: KOTLIN
270 // value param: q5: KOTLIN
271 // value param: q6: KOTLIN
272 // END
273 // MODULE: module1
274 // FILE: KotlinLib.kt
275 package foo.bar
276 
277 val kotlinLibProperty: Int = 0
kotlinLibFuntionnull278 fun kotlinLibFuntion(): Int = 0
279 
280 annotation class Anno1
281 annotation class Anno2
282 annotation class Anno3
283 annotation class Anno4
284 
285 @Anno1
286 class KotlinLibClass<T1>(val p1: List<T1>, val p2: Int)  {
287     val p3: Int = 0
288     fun f1(p4: T1): Int = 0
289     fun f2(p5: List<T1>): Int = 0
290     fun f3(p6: List<Int>): Int = 0
291 }
292 
293 // FILE: JavaLib.java
294 package foo.bar;
295 
296 import java.util.ArrayList;
297 
298 @Anno2
299 class JavaLib<T2> {
300     Byte javaLibField = 0;
301     Byte javaLibFunction() {
302         return 0;
303     }
304     Byte f1(T2 p0, ArrayList<T2> p1) {
305         return 0;
306     }
307 }
308 
309 // MODULE: main(module1)
310 // FILE: KotlinSrc.kt
311 package foo.bar
312 val kotlinSrcProperty: Short = 0
kotlinSrcFuntionnull313 fun kotlinSrcFuntion(): Short = 0
314 
315 @Anno3
316 class KotlinSrcClass<T3>(val q1: Set<T3>, val q2: Short)  {
317     val q3: Short = 0
318     fun g1(q4: T3): Short = 0
319     fun g2(q5: Set<T3>): Short = 0
320     fun g3(q6: Set<Short>): Short = 0
321 }
322 
323 // FILE: JavaSrc.java
324 package foo.bar;
325 
326 import java.util.LinkedList;
327 
328 @Anno4
329 class JavaSrc {
330     Long javaSrcField = 0;
331     Long javaSrcFunction() {
332         return 0;
333     }
334     Long f2<T4>(T4 p0, LinkedList<T4> p1) {
335         return 0;
336     }
337 }
338 
339