[K/JS] Rework member-exportability check in a right way ^KT-61957 Fixed

This commit is contained in:
Artem Kobzar
2023-11-14 17:14:34 +01:00
committed by Space Team
parent 9279aab97f
commit 82bca7a04f
6 changed files with 44 additions and 2 deletions
@@ -1844,6 +1844,12 @@ public class FirJsBoxTestGenerated extends AbstractFirJsBoxTest {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/box/enum"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
}
@Test
@TestMetadata("enumEntriesOnExportedEnum.kt")
public void testEnumEntriesOnExportedEnum() throws Exception {
runTest("js/js.translator/testData/box/enum/enumEntriesOnExportedEnum.kt");
}
@Test
@TestMetadata("enumInheritedFromTrait.kt")
public void testEnumInheritedFromTrait() throws Exception {
@@ -1844,6 +1844,12 @@ public class FirJsES6BoxTestGenerated extends AbstractFirJsES6BoxTest {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/box/enum"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR_ES6, true);
}
@Test
@TestMetadata("enumEntriesOnExportedEnum.kt")
public void testEnumEntriesOnExportedEnum() throws Exception {
runTest("js/js.translator/testData/box/enum/enumEntriesOnExportedEnum.kt");
}
@Test
@TestMetadata("enumInheritedFromTrait.kt")
public void testEnumInheritedFromTrait() throws Exception {
@@ -1844,6 +1844,12 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/box/enum"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR_ES6, true);
}
@Test
@TestMetadata("enumEntriesOnExportedEnum.kt")
public void testEnumEntriesOnExportedEnum() throws Exception {
runTest("js/js.translator/testData/box/enum/enumEntriesOnExportedEnum.kt");
}
@Test
@TestMetadata("enumInheritedFromTrait.kt")
public void testEnumInheritedFromTrait() throws Exception {
@@ -1844,6 +1844,12 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("js/js.translator/testData/box/enum"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.JS_IR, true);
}
@Test
@TestMetadata("enumEntriesOnExportedEnum.kt")
public void testEnumEntriesOnExportedEnum() throws Exception {
runTest("js/js.translator/testData/box/enum/enumEntriesOnExportedEnum.kt");
}
@Test
@TestMetadata("enumInheritedFromTrait.kt")
public void testEnumInheritedFromTrait() throws Exception {
@@ -0,0 +1,19 @@
// !LANGUAGE: +EnumEntries
// IGNORE_BACKEND: JS
// KJS_WITH_FULL_RUNTIME
// KT-61957
@JsExport
enum class SomeEnum {
A,B;
companion object {
@JsName("fromName")
fun fromName(name: String): SomeEnum? {
return SomeEnum.entries.find { name == it.name }
}
}
}
fun box(): String {
return if (SomeEnum.fromName("A") == SomeEnum.A) "OK" else "SomeEnum.fromName(\"A\") != SomeEnum.A"
}