xref: /aosp_15_r20/external/ksp/test-utils/testData/api/constructorDeclarations.kt (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1*af87fb4bSXin Li /*
2*af87fb4bSXin Li  * Copyright 2020 Google LLC
3*af87fb4bSXin Li  * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
4*af87fb4bSXin Li  *
5*af87fb4bSXin Li  * Licensed under the Apache License, Version 2.0 (the "License");
6*af87fb4bSXin Li  * you may not use this file except in compliance with the License.
7*af87fb4bSXin Li  * You may obtain a copy of the License at
8*af87fb4bSXin Li  *
9*af87fb4bSXin Li  * http://www.apache.org/licenses/LICENSE-2.0
10*af87fb4bSXin Li  *
11*af87fb4bSXin Li  * Unless required by applicable law or agreed to in writing, software
12*af87fb4bSXin Li  * distributed under the License is distributed on an "AS IS" BASIS,
13*af87fb4bSXin Li  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*af87fb4bSXin Li  * See the License for the specific language governing permissions and
15*af87fb4bSXin Li  * limitations under the License.
16*af87fb4bSXin Li  */
17*af87fb4bSXin Li 
18*af87fb4bSXin Li // WITH_RUNTIME
19*af87fb4bSXin Li // TEST PROCESSOR: ConstructorDeclarationsProcessor
20*af87fb4bSXin Li // EXPECTED:
21*af87fb4bSXin Li // class: AbstractJavaClassWithExplicitConstructor
22*af87fb4bSXin Li // <init>(kotlin.Int): AbstractJavaClassWithExplicitConstructor
23*af87fb4bSXin Li // class: lib.AbstractJavaClassWithExplicitConstructor
24*af87fb4bSXin Li // <init>(kotlin.Int): lib.AbstractJavaClassWithExplicitConstructor
25*af87fb4bSXin Li // class: AbstractJavaClassWithExplicitEmptyConstructor
26*af87fb4bSXin Li // <init>(): AbstractJavaClassWithExplicitEmptyConstructor
27*af87fb4bSXin Li // class: lib.AbstractJavaClassWithExplicitEmptyConstructor
28*af87fb4bSXin Li // <init>(): lib.AbstractJavaClassWithExplicitEmptyConstructor
29*af87fb4bSXin Li // class: AbstractJavaClassWithMultipleConstructors1
30*af87fb4bSXin Li // <init>(): AbstractJavaClassWithMultipleConstructors1
31*af87fb4bSXin Li // <init>(kotlin.Int): AbstractJavaClassWithMultipleConstructors1
32*af87fb4bSXin Li // <init>(kotlin.String): AbstractJavaClassWithMultipleConstructors1
33*af87fb4bSXin Li // class: lib.AbstractJavaClassWithMultipleConstructors1
34*af87fb4bSXin Li // <init>(): lib.AbstractJavaClassWithMultipleConstructors1
35*af87fb4bSXin Li // <init>(kotlin.Int): lib.AbstractJavaClassWithMultipleConstructors1
36*af87fb4bSXin Li // <init>(kotlin.String): lib.AbstractJavaClassWithMultipleConstructors1
37*af87fb4bSXin Li // class: AbstractJavaClassWithoutExplicitConstructor
38*af87fb4bSXin Li // <init>(): AbstractJavaClassWithoutExplicitConstructor
39*af87fb4bSXin Li // class: lib.AbstractJavaClassWithoutExplicitConstructor
40*af87fb4bSXin Li // <init>(): lib.AbstractJavaClassWithoutExplicitConstructor
41*af87fb4bSXin Li // class: AbstractKotlinClassWithExplicitConstructor
42*af87fb4bSXin Li // <init>(kotlin.Int): AbstractKotlinClassWithExplicitConstructor
43*af87fb4bSXin Li // class: lib.AbstractKotlinClassWithExplicitConstructor
44*af87fb4bSXin Li // <init>(kotlin.Int): lib.AbstractKotlinClassWithExplicitConstructor
45*af87fb4bSXin Li // class: AbstractKotlinClassWithExplicitEmptyConstructor
46*af87fb4bSXin Li // <init>(): AbstractKotlinClassWithExplicitEmptyConstructor
47*af87fb4bSXin Li // class: lib.AbstractKotlinClassWithExplicitEmptyConstructor
48*af87fb4bSXin Li // <init>(): lib.AbstractKotlinClassWithExplicitEmptyConstructor
49*af87fb4bSXin Li // class: AbstractKotlinClassWithMultipleConstructors1
50*af87fb4bSXin Li // <init>(): AbstractKotlinClassWithMultipleConstructors1
51*af87fb4bSXin Li // <init>(kotlin.Int): AbstractKotlinClassWithMultipleConstructors1
52*af87fb4bSXin Li // <init>(kotlin.String): AbstractKotlinClassWithMultipleConstructors1
53*af87fb4bSXin Li // class: lib.AbstractKotlinClassWithMultipleConstructors1
54*af87fb4bSXin Li // <init>(): lib.AbstractKotlinClassWithMultipleConstructors1
55*af87fb4bSXin Li // <init>(kotlin.Int): lib.AbstractKotlinClassWithMultipleConstructors1
56*af87fb4bSXin Li // <init>(kotlin.String): lib.AbstractKotlinClassWithMultipleConstructors1
57*af87fb4bSXin Li // class: AbstractKotlinClassWithMultipleConstructors2
58*af87fb4bSXin Li // <init>(kotlin.Float): AbstractKotlinClassWithMultipleConstructors2
59*af87fb4bSXin Li // <init>(kotlin.Int): AbstractKotlinClassWithMultipleConstructors2
60*af87fb4bSXin Li // <init>(kotlin.String): AbstractKotlinClassWithMultipleConstructors2
61*af87fb4bSXin Li // class: lib.AbstractKotlinClassWithMultipleConstructors2
62*af87fb4bSXin Li // <init>(kotlin.Float): lib.AbstractKotlinClassWithMultipleConstructors2
63*af87fb4bSXin Li // <init>(kotlin.Int): lib.AbstractKotlinClassWithMultipleConstructors2
64*af87fb4bSXin Li // <init>(kotlin.String): lib.AbstractKotlinClassWithMultipleConstructors2
65*af87fb4bSXin Li // class: AbstractKotlinClassWithPrimaryConstructor
66*af87fb4bSXin Li // <init>(kotlin.Int): AbstractKotlinClassWithPrimaryConstructor
67*af87fb4bSXin Li // class: lib.AbstractKotlinClassWithPrimaryConstructor
68*af87fb4bSXin Li // <init>(kotlin.Int): lib.AbstractKotlinClassWithPrimaryConstructor
69*af87fb4bSXin Li // class: AbstractKotlinClassWithoutExplicitConstructor
70*af87fb4bSXin Li // <init>(): AbstractKotlinClassWithoutExplicitConstructor
71*af87fb4bSXin Li // class: lib.AbstractKotlinClassWithoutExplicitConstructor
72*af87fb4bSXin Li // <init>(): lib.AbstractKotlinClassWithoutExplicitConstructor
73*af87fb4bSXin Li // class: DataClass
74*af87fb4bSXin Li // <init>(kotlin.Int,kotlin.String): DataClass
75*af87fb4bSXin Li // class: lib.DataClass
76*af87fb4bSXin Li // <init>(kotlin.Int,kotlin.String): lib.DataClass
77*af87fb4bSXin Li // class: DataClassWithSecondaryConstructor
78*af87fb4bSXin Li // <init>(kotlin.Int): DataClassWithSecondaryConstructor
79*af87fb4bSXin Li // <init>(kotlin.Int,kotlin.String): DataClassWithSecondaryConstructor
80*af87fb4bSXin Li // class: lib.DataClassWithSecondaryConstructor
81*af87fb4bSXin Li // <init>(kotlin.Int): lib.DataClassWithSecondaryConstructor
82*af87fb4bSXin Li // <init>(kotlin.Int,kotlin.String): lib.DataClassWithSecondaryConstructor
83*af87fb4bSXin Li // class: JavaAnnotation
84*af87fb4bSXin Li // <init>(): JavaAnnotation
85*af87fb4bSXin Li // class: lib.JavaAnnotation
86*af87fb4bSXin Li // <init>(): lib.JavaAnnotation
87*af87fb4bSXin Li // class: JavaClassWithExplicitConstructor
88*af87fb4bSXin Li // <init>(kotlin.Int): JavaClassWithExplicitConstructor
89*af87fb4bSXin Li // class: lib.JavaClassWithExplicitConstructor
90*af87fb4bSXin Li // <init>(kotlin.Int): lib.JavaClassWithExplicitConstructor
91*af87fb4bSXin Li // class: JavaClassWithExplicitEmptyConstructor
92*af87fb4bSXin Li // <init>(): JavaClassWithExplicitEmptyConstructor
93*af87fb4bSXin Li // class: lib.JavaClassWithExplicitEmptyConstructor
94*af87fb4bSXin Li // <init>(): lib.JavaClassWithExplicitEmptyConstructor
95*af87fb4bSXin Li // class: JavaClassWithMultipleConstructors1
96*af87fb4bSXin Li // <init>(): JavaClassWithMultipleConstructors1
97*af87fb4bSXin Li // <init>(kotlin.Int): JavaClassWithMultipleConstructors1
98*af87fb4bSXin Li // <init>(kotlin.String): JavaClassWithMultipleConstructors1
99*af87fb4bSXin Li // class: lib.JavaClassWithMultipleConstructors1
100*af87fb4bSXin Li // <init>(): lib.JavaClassWithMultipleConstructors1
101*af87fb4bSXin Li // <init>(kotlin.Int): lib.JavaClassWithMultipleConstructors1
102*af87fb4bSXin Li // <init>(kotlin.String): lib.JavaClassWithMultipleConstructors1
103*af87fb4bSXin Li // class: JavaClassWithoutExplicitConstructor
104*af87fb4bSXin Li // <init>(): JavaClassWithoutExplicitConstructor
105*af87fb4bSXin Li // class: lib.JavaClassWithoutExplicitConstructor
106*af87fb4bSXin Li // <init>(): lib.JavaClassWithoutExplicitConstructor
107*af87fb4bSXin Li // class: JavaInterface
108*af87fb4bSXin Li // class: lib.JavaInterface
109*af87fb4bSXin Li // class: KotlinAnnotation
110*af87fb4bSXin Li // <init>(): KotlinAnnotation
111*af87fb4bSXin Li // class: lib.KotlinAnnotation
112*af87fb4bSXin Li // <init>(): lib.KotlinAnnotation
113*af87fb4bSXin Li // class: KotlinClassWithCompanion
114*af87fb4bSXin Li // <init>(): KotlinClassWithCompanion
115*af87fb4bSXin Li // class: lib.KotlinClassWithCompanion
116*af87fb4bSXin Li // <init>(): lib.KotlinClassWithCompanion
117*af87fb4bSXin Li // class: KotlinClassWithExplicitConstructor
118*af87fb4bSXin Li // <init>(kotlin.Int): KotlinClassWithExplicitConstructor
119*af87fb4bSXin Li // class: lib.KotlinClassWithExplicitConstructor
120*af87fb4bSXin Li // <init>(kotlin.Int): lib.KotlinClassWithExplicitConstructor
121*af87fb4bSXin Li // class: KotlinClassWithExplicitEmptyConstructor
122*af87fb4bSXin Li // <init>(): KotlinClassWithExplicitEmptyConstructor
123*af87fb4bSXin Li // class: lib.KotlinClassWithExplicitEmptyConstructor
124*af87fb4bSXin Li // <init>(): lib.KotlinClassWithExplicitEmptyConstructor
125*af87fb4bSXin Li // class: KotlinClassWithMultipleConstructors1
126*af87fb4bSXin Li // <init>(): KotlinClassWithMultipleConstructors1
127*af87fb4bSXin Li // <init>(kotlin.Int): KotlinClassWithMultipleConstructors1
128*af87fb4bSXin Li // <init>(kotlin.String): KotlinClassWithMultipleConstructors1
129*af87fb4bSXin Li // class: lib.KotlinClassWithMultipleConstructors1
130*af87fb4bSXin Li // <init>(): lib.KotlinClassWithMultipleConstructors1
131*af87fb4bSXin Li // <init>(kotlin.Int): lib.KotlinClassWithMultipleConstructors1
132*af87fb4bSXin Li // <init>(kotlin.String): lib.KotlinClassWithMultipleConstructors1
133*af87fb4bSXin Li // class: KotlinClassWithMultipleConstructors2
134*af87fb4bSXin Li // <init>(kotlin.Float): KotlinClassWithMultipleConstructors2
135*af87fb4bSXin Li // <init>(kotlin.Int): KotlinClassWithMultipleConstructors2
136*af87fb4bSXin Li // <init>(kotlin.String): KotlinClassWithMultipleConstructors2
137*af87fb4bSXin Li // class: lib.KotlinClassWithMultipleConstructors2
138*af87fb4bSXin Li // <init>(kotlin.Float): lib.KotlinClassWithMultipleConstructors2
139*af87fb4bSXin Li // <init>(kotlin.Int): lib.KotlinClassWithMultipleConstructors2
140*af87fb4bSXin Li // <init>(kotlin.String): lib.KotlinClassWithMultipleConstructors2
141*af87fb4bSXin Li // class: KotlinClassWithNamedCompanion
142*af87fb4bSXin Li // <init>(): KotlinClassWithNamedCompanion
143*af87fb4bSXin Li // class: lib.KotlinClassWithNamedCompanion
144*af87fb4bSXin Li // <init>(): lib.KotlinClassWithNamedCompanion
145*af87fb4bSXin Li // class: KotlinClassWithPrimaryConstructor
146*af87fb4bSXin Li // <init>(kotlin.Int): KotlinClassWithPrimaryConstructor
147*af87fb4bSXin Li // class: lib.KotlinClassWithPrimaryConstructor
148*af87fb4bSXin Li // <init>(kotlin.Int): lib.KotlinClassWithPrimaryConstructor
149*af87fb4bSXin Li // class: KotlinClassWithoutExplicitConstructor
150*af87fb4bSXin Li // <init>(): KotlinClassWithoutExplicitConstructor
151*af87fb4bSXin Li // class: lib.KotlinClassWithoutExplicitConstructor
152*af87fb4bSXin Li // <init>(): lib.KotlinClassWithoutExplicitConstructor
153*af87fb4bSXin Li // class: KotlinInterface
154*af87fb4bSXin Li // class: lib.KotlinInterface
155*af87fb4bSXin Li // class: KotlinObject
156*af87fb4bSXin Li // <init>(): KotlinObject
157*af87fb4bSXin Li // class: lib.KotlinObject
158*af87fb4bSXin Li // <init>(): lib.KotlinObject
159*af87fb4bSXin Li // END
160*af87fb4bSXin Li 
161*af87fb4bSXin Li // MODULE: lib
162*af87fb4bSXin Li // FILE: lib/JavaInterface.java
163*af87fb4bSXin Li package lib;
164*af87fb4bSXin Li interface JavaInterface {
165*af87fb4bSXin Li }
166*af87fb4bSXin Li // FILE: lib/AbstractJavaClassWithoutExplicitConstructor.java
167*af87fb4bSXin Li package lib;
168*af87fb4bSXin Li abstract class AbstractJavaClassWithoutExplicitConstructor {
169*af87fb4bSXin Li }
170*af87fb4bSXin Li // FILE: lib/AbstractJavaClassWithExplicitEmptyConstructor.java
171*af87fb4bSXin Li package lib;
172*af87fb4bSXin Li abstract class AbstractJavaClassWithExplicitEmptyConstructor {
173*af87fb4bSXin Li     AbstractJavaClassWithExplicitEmptyConstructor() {}
174*af87fb4bSXin Li }
175*af87fb4bSXin Li // FILE: lib/AbstractJavaClassWithExplicitConstructor.java
176*af87fb4bSXin Li package lib;
177*af87fb4bSXin Li abstract class AbstractJavaClassWithExplicitConstructor {
178*af87fb4bSXin Li     AbstractJavaClassWithExplicitConstructor(int x) {}
179*af87fb4bSXin Li }
180*af87fb4bSXin Li // FILE: lib/AbstractJavaClassWithMultipleConstructors1.java
181*af87fb4bSXin Li package lib;
182*af87fb4bSXin Li abstract class AbstractJavaClassWithMultipleConstructors1 {
<lambda>null183*af87fb4bSXin Li     AbstractJavaClassWithMultipleConstructors1() {}
184*af87fb4bSXin Li     AbstractJavaClassWithMultipleConstructors1(int y) {}
185*af87fb4bSXin Li     AbstractJavaClassWithMultipleConstructors1(String x) {}
186*af87fb4bSXin Li }
187*af87fb4bSXin Li // FILE: lib/JavaClassWithoutExplicitConstructor.java
188*af87fb4bSXin Li package lib;
189*af87fb4bSXin Li class JavaClassWithoutExplicitConstructor {
190*af87fb4bSXin Li }
191*af87fb4bSXin Li // FILE: lib/JavaClassWithExplicitEmptyConstructor.java
192*af87fb4bSXin Li package lib;
193*af87fb4bSXin Li class JavaClassWithExplicitEmptyConstructor {
194*af87fb4bSXin Li     JavaClassWithExplicitEmptyConstructor() {}
195*af87fb4bSXin Li }
196*af87fb4bSXin Li // FILE: lib/JavaClassWithExplicitConstructor.java
197*af87fb4bSXin Li package lib;
198*af87fb4bSXin Li class JavaClassWithExplicitConstructor {
199*af87fb4bSXin Li     JavaClassWithExplicitConstructor(int x) {}
200*af87fb4bSXin Li }
201*af87fb4bSXin Li // FILE: lib/JavaClassWithMultipleConstructors1.java
202*af87fb4bSXin Li package lib;
203*af87fb4bSXin Li class JavaClassWithMultipleConstructors1 {
<lambda>null204*af87fb4bSXin Li     JavaClassWithMultipleConstructors1() {}
205*af87fb4bSXin Li     JavaClassWithMultipleConstructors1(int y) {}
206*af87fb4bSXin Li     JavaClassWithMultipleConstructors1(String x) {}
207*af87fb4bSXin Li }
208*af87fb4bSXin Li // FILE: JavaAnnotation.java
209*af87fb4bSXin Li package lib;
210*af87fb4bSXin Li public @interface JavaAnnotation {
211*af87fb4bSXin Li }
212*af87fb4bSXin Li // FILE: kotlin_lib.kt
213*af87fb4bSXin Li package lib
214*af87fb4bSXin Li interface KotlinInterface {}
215*af87fb4bSXin Li class KotlinClassWithoutExplicitConstructor {
216*af87fb4bSXin Li }
217*af87fb4bSXin Li class KotlinClassWithExplicitEmptyConstructor() {}
218*af87fb4bSXin Li class KotlinClassWithPrimaryConstructor(x:Int) {
219*af87fb4bSXin Li }
220*af87fb4bSXin Li class KotlinClassWithExplicitConstructor {
221*af87fb4bSXin Li     constructor(x:Int) {}
222*af87fb4bSXin Li }
223*af87fb4bSXin Li class KotlinClassWithMultipleConstructors1 {
224*af87fb4bSXin Li     constructor() {}
225*af87fb4bSXin Li     constructor(y:Int): this() {}
226*af87fb4bSXin Li     constructor(x: String) : this() {}
227*af87fb4bSXin Li }
228*af87fb4bSXin Li class KotlinClassWithMultipleConstructors2(z:Float) {
229*af87fb4bSXin Li     constructor(y:Int): this(0f) {}
230*af87fb4bSXin Li     constructor(x: String) : this(0f) {}
231*af87fb4bSXin Li }
232*af87fb4bSXin Li abstract class AbstractKotlinClassWithoutExplicitConstructor {
233*af87fb4bSXin Li }
234*af87fb4bSXin Li abstract class AbstractKotlinClassWithPrimaryConstructor(x:Int) {
235*af87fb4bSXin Li }
236*af87fb4bSXin Li abstract class AbstractKotlinClassWithExplicitEmptyConstructor() {}
237*af87fb4bSXin Li abstract class AbstractKotlinClassWithExplicitConstructor {
238*af87fb4bSXin Li     constructor(x:Int) {}
239*af87fb4bSXin Li }
240*af87fb4bSXin Li abstract class AbstractKotlinClassWithMultipleConstructors1 {
241*af87fb4bSXin Li     constructor() {}
242*af87fb4bSXin Li     constructor(y:Int): this() {}
243*af87fb4bSXin Li     constructor(x: String) : this() {}
244*af87fb4bSXin Li }
245*af87fb4bSXin Li abstract class AbstractKotlinClassWithMultipleConstructors2(z:Float) {
246*af87fb4bSXin Li     constructor(y:Int): this(0f) {}
247*af87fb4bSXin Li     constructor(x: String) : this(0f) {}
248*af87fb4bSXin Li }
249*af87fb4bSXin Li annotation class KotlinAnnotation
250*af87fb4bSXin Li object KotlinObject {}
251*af87fb4bSXin Li class KotlinClassWithCompanion {
252*af87fb4bSXin Li     companion object
253*af87fb4bSXin Li }
254*af87fb4bSXin Li class KotlinClassWithNamedCompanion {
255*af87fb4bSXin Li     companion object MyCompanion
256*af87fb4bSXin Li }
257*af87fb4bSXin Li data class DataClass(val x:Int, var y:String)
258*af87fb4bSXin Li data class DataClassWithSecondaryConstructor(val x:Int, val y:String) {
259*af87fb4bSXin Li     constructor(x:Int) : this(x, "")
260*af87fb4bSXin Li }
261*af87fb4bSXin Li // MODULE: main(lib)
262*af87fb4bSXin Li // FILE: JavaInterface.java
263*af87fb4bSXin Li interface JavaInterface {
264*af87fb4bSXin Li }
265*af87fb4bSXin Li // FILE: AbstractJavaClassWithoutExplicitConstructor.java
266*af87fb4bSXin Li abstract class AbstractJavaClassWithoutExplicitConstructor {
267*af87fb4bSXin Li }
268*af87fb4bSXin Li // FILE: AbstractJavaClassWithExplicitEmptyConstructor.java
269*af87fb4bSXin Li abstract class AbstractJavaClassWithExplicitEmptyConstructor {
270*af87fb4bSXin Li     AbstractJavaClassWithExplicitEmptyConstructor() {}
271*af87fb4bSXin Li }
272*af87fb4bSXin Li // FILE: AbstractJavaClassWithExplicitConstructor.java
273*af87fb4bSXin Li abstract class AbstractJavaClassWithExplicitConstructor {
274*af87fb4bSXin Li     AbstractJavaClassWithExplicitConstructor(int x) {}
275*af87fb4bSXin Li }
276*af87fb4bSXin Li // FILE: AbstractJavaClassWithMultipleConstructors1.java
277*af87fb4bSXin Li abstract class AbstractJavaClassWithMultipleConstructors1 {
<lambda>null278*af87fb4bSXin Li     AbstractJavaClassWithMultipleConstructors1() {}
279*af87fb4bSXin Li     AbstractJavaClassWithMultipleConstructors1(int y) {}
280*af87fb4bSXin Li     AbstractJavaClassWithMultipleConstructors1(String x) {}
281*af87fb4bSXin Li }
282*af87fb4bSXin Li // FILE: JavaClassWithoutExplicitConstructor.java
283*af87fb4bSXin Li class JavaClassWithoutExplicitConstructor {
284*af87fb4bSXin Li }
285*af87fb4bSXin Li // FILE: JavaClassWithExplicitEmptyConstructor.java
286*af87fb4bSXin Li class JavaClassWithExplicitEmptyConstructor {
287*af87fb4bSXin Li     JavaClassWithExplicitEmptyConstructor() {}
288*af87fb4bSXin Li }
289*af87fb4bSXin Li // FILE: JavaClassWithExplicitConstructor.java
290*af87fb4bSXin Li class JavaClassWithExplicitConstructor {
291*af87fb4bSXin Li     JavaClassWithExplicitConstructor(int x) {}
292*af87fb4bSXin Li }
293*af87fb4bSXin Li // FILE: JavaClassWithMultipleConstructors1.java
294*af87fb4bSXin Li class JavaClassWithMultipleConstructors1 {
<lambda>null295*af87fb4bSXin Li     JavaClassWithMultipleConstructors1() {}
296*af87fb4bSXin Li     JavaClassWithMultipleConstructors1(int y) {}
297*af87fb4bSXin Li     JavaClassWithMultipleConstructors1(String x) {}
298*af87fb4bSXin Li }
299*af87fb4bSXin Li // FILE: JavaAnnotation.java
300*af87fb4bSXin Li public @interface JavaAnnotation {
301*af87fb4bSXin Li }
302*af87fb4bSXin Li // FILE: kotlin.kt
303*af87fb4bSXin Li interface KotlinInterface {}
304*af87fb4bSXin Li class KotlinClassWithoutExplicitConstructor {
305*af87fb4bSXin Li }
306*af87fb4bSXin Li class KotlinClassWithExplicitEmptyConstructor() {}
307*af87fb4bSXin Li class KotlinClassWithPrimaryConstructor(x:Int) {
308*af87fb4bSXin Li }
309*af87fb4bSXin Li class KotlinClassWithExplicitConstructor {
310*af87fb4bSXin Li     constructor(x:Int) {}
311*af87fb4bSXin Li }
312*af87fb4bSXin Li class KotlinClassWithMultipleConstructors1 {
313*af87fb4bSXin Li     constructor() {}
314*af87fb4bSXin Li     constructor(y:Int): this() {}
315*af87fb4bSXin Li     constructor(x: String) : this() {}
316*af87fb4bSXin Li }
317*af87fb4bSXin Li class KotlinClassWithMultipleConstructors2(z:Float) {
318*af87fb4bSXin Li     constructor(y:Int): this(0f) {}
319*af87fb4bSXin Li     constructor(x: String) : this(0f) {}
320*af87fb4bSXin Li }
321*af87fb4bSXin Li abstract class AbstractKotlinClassWithoutExplicitConstructor {
322*af87fb4bSXin Li }
323*af87fb4bSXin Li abstract class AbstractKotlinClassWithPrimaryConstructor(x:Int) {
324*af87fb4bSXin Li }
325*af87fb4bSXin Li abstract class AbstractKotlinClassWithExplicitEmptyConstructor() {}
326*af87fb4bSXin Li abstract class AbstractKotlinClassWithExplicitConstructor {
327*af87fb4bSXin Li     constructor(x:Int) {}
328*af87fb4bSXin Li }
329*af87fb4bSXin Li abstract class AbstractKotlinClassWithMultipleConstructors1 {
330*af87fb4bSXin Li     constructor() {}
331*af87fb4bSXin Li     constructor(y:Int): this() {}
332*af87fb4bSXin Li     constructor(x: String) : this() {}
333*af87fb4bSXin Li }
334*af87fb4bSXin Li abstract class AbstractKotlinClassWithMultipleConstructors2(z:Float) {
335*af87fb4bSXin Li     constructor(y:Int): this(0f) {}
336*af87fb4bSXin Li     constructor(x: String) : this(0f) {}
337*af87fb4bSXin Li }
338*af87fb4bSXin Li annotation class KotlinAnnotation
339*af87fb4bSXin Li object KotlinObject {}
340*af87fb4bSXin Li class KotlinClassWithCompanion {
341*af87fb4bSXin Li     companion object
342*af87fb4bSXin Li }
343*af87fb4bSXin Li class KotlinClassWithNamedCompanion {
344*af87fb4bSXin Li     companion object MyCompanion
345*af87fb4bSXin Li }
346*af87fb4bSXin Li data class DataClass(val x:Int, var y:String)
347*af87fb4bSXin Li data class DataClassWithSecondaryConstructor(val x:Int, val y:String) {
348*af87fb4bSXin Li     constructor(x:Int) : this(x, "")
349*af87fb4bSXin Li }