From 19bffc694be6d83d4e0c32a3754d7bcb3f1095e8 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Mon, 8 Feb 2021 11:48:50 +0300 Subject: [PATCH] [JS IR] Add test with chain export--not-export--export ^KT-44616 fixed --- .../semantics/IrBoxJsES6TestGenerated.java | 5 +++ .../ir/semantics/IrBoxJsTestGenerated.java | 5 +++ .../js/test/semantics/BoxJsTestGenerated.java | 5 +++ .../overriddenChainNonExportIntermediate.kt | 38 +++++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java index 6bab51ea5c6..2431469a3cd 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java @@ -1632,6 +1632,11 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test { runTest("js/js.translator/testData/box/export/nonIndetifierModuleName.kt"); } + @TestMetadata("overriddenChainNonExportIntermediate.kt") + public void testOverriddenChainNonExportIntermediate() throws Exception { + runTest("js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt"); + } + @TestMetadata("overriddenExternalMethodWithSameNameMethod.kt") public void testOverriddenExternalMethodWithSameNameMethod() throws Exception { runTest("js/js.translator/testData/box/export/overriddenExternalMethodWithSameNameMethod.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index 11901a52caa..902c771bee4 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -1632,6 +1632,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { runTest("js/js.translator/testData/box/export/nonIndetifierModuleName.kt"); } + @TestMetadata("overriddenChainNonExportIntermediate.kt") + public void testOverriddenChainNonExportIntermediate() throws Exception { + runTest("js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt"); + } + @TestMetadata("overriddenExternalMethodWithSameNameMethod.kt") public void testOverriddenExternalMethodWithSameNameMethod() throws Exception { runTest("js/js.translator/testData/box/export/overriddenExternalMethodWithSameNameMethod.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index da503f4f0b0..74d0097f158 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -1637,6 +1637,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { runTest("js/js.translator/testData/box/export/nonIndetifierModuleName.kt"); } + @TestMetadata("overriddenChainNonExportIntermediate.kt") + public void testOverriddenChainNonExportIntermediate() throws Exception { + runTest("js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt"); + } + @TestMetadata("overriddenExternalMethodWithSameNameMethod.kt") public void testOverriddenExternalMethodWithSameNameMethod() throws Exception { runTest("js/js.translator/testData/box/export/overriddenExternalMethodWithSameNameMethod.kt"); diff --git a/js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt b/js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt new file mode 100644 index 00000000000..b04e9fc2b5e --- /dev/null +++ b/js/js.translator/testData/box/export/overriddenChainNonExportIntermediate.kt @@ -0,0 +1,38 @@ +// IGNORE_BACKEND: JS +// RUN_PLAIN_BOX_FUNCTION +// INFER_MAIN_MODULE + +// MODULE: overriden-chain-non-export-intermediate +// FILE: lib.kt +@JsExport +abstract class A { + abstract fun foo(): String + + abstract fun bar(): String +} + +abstract class B : A() { + abstract fun baz(): String + + override fun foo(): String = "foo" +} + +@JsExport +class C : B() { + override fun bar(): String = "bar" + override fun baz(): String = "baz" + + fun bay(): String = "bay" +} + +// FILE: test.js + +function box() { + return test(new this["overriden-chain-non-export-intermediate"].C()); +} + +function test(c) { + if (c.foo() === "foo" && c.bar() === "bar" && c.bay() == "bay") return "OK" + + return "fail" +} \ No newline at end of file