diff --git a/backend.native/tests/build.gradle b/backend.native/tests/build.gradle index 24a13b19b75..e62a1e9006c 100644 --- a/backend.native/tests/build.gradle +++ b/backend.native/tests/build.gradle @@ -227,9 +227,11 @@ task objectInitialization(type: UnitKonanTest) { source = "codegen/object/initialization.kt" } -/* task objectBasic(type: KonanTest) { +/* field initialization test +task objectBasic(type: UnitKonanTest) { source = "$codegen/klass/basic.kt" -} */ +} +*/ task check_type(type: UnitKonanTest) { source = "codegen/basics/check_type.kt" diff --git a/backend.native/tests/codegen/object/constructor0.kt b/backend.native/tests/codegen/object/constructor0.kt new file mode 100644 index 00000000000..49c37a627d0 --- /dev/null +++ b/backend.native/tests/codegen/object/constructor0.kt @@ -0,0 +1,6 @@ +class A { + var field0:Int = 0; + constructor(arg0:Int) { + field0 = arg0 + } +} diff --git a/backend.native/tests/codegen/object/initialization-test.c b/backend.native/tests/codegen/object/initialization-test.c index 84eda08c605..9f5e603fc06 100644 --- a/backend.native/tests/codegen/object/initialization-test.c +++ b/backend.native/tests/codegen/object/initialization-test.c @@ -4,7 +4,7 @@ int run_test() { int (*foo)(int, int) = resolve_symbol("kfun:foo(Int;Int)"); - if (foo(2, 3) != 2) return 1; + if (foo(2, 3) != 5) return 1; return 0; } diff --git a/backend.native/tests/codegen/object/initialization.kt b/backend.native/tests/codegen/object/initialization.kt index 6507fa2d7da..cf4eb1d8c9b 100644 --- a/backend.native/tests/codegen/object/initialization.kt +++ b/backend.native/tests/codegen/object/initialization.kt @@ -2,9 +2,19 @@ open class A(val a:Int, val b:Int) open class B(val c:Int, d:Int):A(c, d) -//class C():B(42) +open class C(i:Int, j:Int):B(i + j, 42) + +class D (i: Int, j:Int) : C(i, j){ + constructor(i: Int, j:Int, k:Int) : this(i, j) { + foo(i) + } + constructor():this(1, 2) +} + +fun foo(i:Int) : Unit {} + fun foo(i:Int, j:Int):Int { - val b = B(i, j) - return b.c + val c = D(i, j) + return c.c } \ No newline at end of file