diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 057ef865bd8..37335410b0e 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -663,3 +663,18 @@ task main_exception(type: RunKonanTest) { source = "runtime/basic/main_exception.kt" } + +task initializers0(type: RunKonanTest) { + goldValue = "main\n" + + "B::constructor(1)\n" + + "A::companion\n" + + "A::companion::foo\n" + + "A::companion::foo\n" + + "B::constructor(0)\n" + + "B::constructor()\n" + + "A::Obj\n" + + "A::AObj::foo\n" + + "A::AObj::foo\n" + source = "runtime/basic/initializers0.kt" +} + diff --git a/backend.native/tests/runtime/basic/initializers0.kt b/backend.native/tests/runtime/basic/initializers0.kt new file mode 100644 index 00000000000..9d93ea15ae6 --- /dev/null +++ b/backend.native/tests/runtime/basic/initializers0.kt @@ -0,0 +1,44 @@ +class A { + init{ + println ("A::init") + } + + val a = 1 + + companion object :B(1) { + init { + println ("A::companion") + } + + fun foo() { + println("A::companion::foo") + } + } + + object AObj : B(){ + init { + println("A::Obj") + } + fun foo() { + println("A::AObj::foo") + } + } +} + +fun main(args:Array) { + println("main") + A.foo() + A.foo() + A.AObj.foo() + A.AObj.foo() +} + +open class B(val a:Int, val b:Int) { + constructor(a:Int):this (a, 0) { + println("B::constructor(" + a.toString()+ ")") + } + constructor():this(0) { + println("B::constructor()") + } +} +