From 34d649938b7b98c7e02daaa1640bc637ac1f3d28 Mon Sep 17 00:00:00 2001 From: Pavel Talanov Date: Tue, 15 Nov 2011 21:10:15 +0400 Subject: [PATCH] Added one more test for initialization order. --- .../k2js/test/ClassInheritanceTest.java | 5 +++ .../cases/complexInitializationOrder.kt | 37 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 translator/testFiles/inheritance/cases/complexInitializationOrder.kt 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