From de3ebf9baa7c29fbd2f0e7b8fb107b5cb4de2465 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 13 Aug 2012 16:07:02 +0400 Subject: [PATCH] Tests:ObjectInheritingFromATrait test enhanced, ObjectInheritingFromClass test added. --- .../k2js/test/semantics/ObjectTest.java | 3 +++ .../cases/objectInheritingFromATrait.kt | 20 +++++++++++++++---- .../object/cases/objectInheritingFromClass.kt | 9 +++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 js/js.translator/testFiles/object/cases/objectInheritingFromClass.kt diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/ObjectTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/ObjectTest.java index 093b4ecf2e4..548e28ad62d 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/ObjectTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/ObjectTest.java @@ -53,4 +53,7 @@ public final class ObjectTest extends SingleFileTranslationTest { fooBoxTest(); } + public void testObjectInheritingFromClass() throws Exception { + fooBoxTest(); + } } diff --git a/js/js.translator/testFiles/object/cases/objectInheritingFromATrait.kt b/js/js.translator/testFiles/object/cases/objectInheritingFromATrait.kt index 505f07fe0ca..ac3ad2197cd 100644 --- a/js/js.translator/testFiles/object/cases/objectInheritingFromATrait.kt +++ b/js/js.translator/testFiles/object/cases/objectInheritingFromATrait.kt @@ -1,13 +1,25 @@ package foo trait Foo { - fun f() : Boolean + fun execute(handler: ()->Unit) { + execute(false, handler) + } + + fun execute(onlyIfAttached: Boolean, handler: ()->Unit) } object foo : Foo { - override fun f() = true + override fun execute(onlyIfAttached: Boolean, handler: ()->Unit) { + handler() + } } -fun box() : Boolean { - return foo.f() +private var result = false + +fun box(): Boolean { + foo.execute() { + result = true + } + + return result } \ No newline at end of file diff --git a/js/js.translator/testFiles/object/cases/objectInheritingFromClass.kt b/js/js.translator/testFiles/object/cases/objectInheritingFromClass.kt new file mode 100644 index 00000000000..667de61ec3b --- /dev/null +++ b/js/js.translator/testFiles/object/cases/objectInheritingFromClass.kt @@ -0,0 +1,9 @@ +package foo + +abstract class A(val s:String) { +} + +object B : A("test") { +} + +fun box() = B.s == "test"