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 }