// !LANGUAGE: -NormalizeConstructorCalls // IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // FILE: test.kt fun box(): String { Outer().Inner( logged("i;", 1.let { it }), logged("j;", 2.let { it }) ) val result = log.toString() if (result != "Foo.;i;j;Foo.;Inner.;") return "Fail: '$result'" return "OK" } // FILE: util.kt val log = StringBuilder() fun logged(msg: String, value: T): T { log.append(msg) return value } // FILE: Foo.kt open class Foo { init { log.append("Foo.;") } companion object { init { log.append("Foo.;") } } } class Outer { inner class Inner(val x: Int, val y: Int) : Foo() { init { log.append("Inner.;") } } }