diff --git a/translator/test/org/jetbrains/k2js/test/ClassInheritanceTest.java b/translator/test/org/jetbrains/k2js/test/ClassInheritanceTest.java index e041b04c3b0..0a5a830d73f 100644 --- a/translator/test/org/jetbrains/k2js/test/ClassInheritanceTest.java +++ b/translator/test/org/jetbrains/k2js/test/ClassInheritanceTest.java @@ -28,6 +28,11 @@ public final class ClassInheritanceTest extends AbstractClassTest { public void initializationOrder() throws Exception { testFooBoxIsTrue("initializationOrder.kt"); } + + @Test + public void complexInitializationOrder() throws Exception { + testFooBoxIsTrue("complexInitializationOrder.kt"); + } } diff --git a/translator/testFiles/inheritance/cases/complexInitializationOrder.kt b/translator/testFiles/inheritance/cases/complexInitializationOrder.kt new file mode 100644 index 00000000000..c6e007d7265 --- /dev/null +++ b/translator/testFiles/inheritance/cases/complexInitializationOrder.kt @@ -0,0 +1,37 @@ +namespace foo + +open class A() { + + var order = "" + { + order = order + "A" + } +} + +open class B() : A() { + { + order = order + "B" + } +} + +class C() : B() { + { + order = order + "C" + } +} + +class D() : B() { + { + order = order + "D" + } +} + +class E() : A() { + { + order = order + "E" + } +} + +fun box() : Boolean { + return (C().order == "ABC") && (D().order == "ABD") && (E().order == "AE") +} \ No newline at end of file