diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/DataClassTest.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/DataClassTest.java index c807d4d98ee..a96b279698f 100644 --- a/js/js.tests/test/org/jetbrains/k2js/test/semantics/DataClassTest.java +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/DataClassTest.java @@ -43,6 +43,10 @@ public class DataClassTest extends SingleFileTranslationTest { checkFooBoxIsOk(); } + public void testOverride() throws Exception { + checkFooBoxIsOk(); + } + public void testKeyrole() throws Exception { checkFooBoxIsOk(); } diff --git a/js/js.translator/testData/dataClass/cases/override.kt b/js/js.translator/testData/dataClass/cases/override.kt new file mode 100644 index 00000000000..ee31b432138 --- /dev/null +++ b/js/js.translator/testData/dataClass/cases/override.kt @@ -0,0 +1,29 @@ +package foo + +var t: Any? = null + +data class Dat(val start: String, middle: String, val end: String) { + override fun toString() = "another string" + override fun hashCode() = 371 + override fun equals(other: Any?): Boolean { + t = other + return true + } +} + +fun assertEquals(expected: T, actual: T) { + if (expected != actual) throw Exception("expected: $expected, actual, $actual") +} + +fun box(): String { + val d = Dat("max", "-", "min") + val other = Dat("other", "-", "instance") + + assertEquals(371, d.hashCode()) + assertEquals(true, d == other) + assertEquals(other, t) + assertEquals("another string", d.toString()) + + return "OK" +} +