[JS IR] Fix clashes between bridge and delegated function call

The patch fixes the js function signature rules to avoid clashes
 between bridge and delegated call. Use overridden symbols dfs of
 JsName annotation in order to get the correct bridge name.

^KT-52968 Fixed
This commit is contained in:
Alexander Korepanov
2022-07-20 16:01:18 +02:00
committed by Space
parent 6525f7a7ac
commit caa1570e25
10 changed files with 345 additions and 3 deletions
@@ -6570,6 +6570,36 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
runTest("js/js.translator/testData/box/jsName/jsTopLevelRenameReserved.kt");
}
@Test
@TestMetadata("methodOfAbstractClass.kt")
public void testMethodOfAbstractClass() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfAbstractClass.kt");
}
@Test
@TestMetadata("methodOfInterface.kt")
public void testMethodOfInterface() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfInterface.kt");
}
@Test
@TestMetadata("methodOfInterfaceWithDefinition.kt")
public void testMethodOfInterfaceWithDefinition() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfInterfaceWithDefinition.kt");
}
@Test
@TestMetadata("methodOfMultipleInterface.kt")
public void testMethodOfMultipleInterface() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfMultipleInterface.kt");
}
@Test
@TestMetadata("methodOfOpenClass.kt")
public void testMethodOfOpenClass() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfOpenClass.kt");
}
@Test
@TestMetadata("overriddenMethod.kt")
public void testOverriddenMethod() throws Exception {
@@ -7036,6 +7036,36 @@ public class FirJsTestGenerated extends AbstractFirJsTest {
runTest("js/js.translator/testData/box/jsName/jsTopLevelRenameReserved.kt");
}
@Test
@TestMetadata("methodOfAbstractClass.kt")
public void testMethodOfAbstractClass() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfAbstractClass.kt");
}
@Test
@TestMetadata("methodOfInterface.kt")
public void testMethodOfInterface() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfInterface.kt");
}
@Test
@TestMetadata("methodOfInterfaceWithDefinition.kt")
public void testMethodOfInterfaceWithDefinition() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfInterfaceWithDefinition.kt");
}
@Test
@TestMetadata("methodOfMultipleInterface.kt")
public void testMethodOfMultipleInterface() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfMultipleInterface.kt");
}
@Test
@TestMetadata("methodOfOpenClass.kt")
public void testMethodOfOpenClass() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfOpenClass.kt");
}
@Test
@TestMetadata("overriddenMethod.kt")
public void testOverriddenMethod() throws Exception {
@@ -7036,6 +7036,36 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
runTest("js/js.translator/testData/box/jsName/jsTopLevelRenameReserved.kt");
}
@Test
@TestMetadata("methodOfAbstractClass.kt")
public void testMethodOfAbstractClass() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfAbstractClass.kt");
}
@Test
@TestMetadata("methodOfInterface.kt")
public void testMethodOfInterface() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfInterface.kt");
}
@Test
@TestMetadata("methodOfInterfaceWithDefinition.kt")
public void testMethodOfInterfaceWithDefinition() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfInterfaceWithDefinition.kt");
}
@Test
@TestMetadata("methodOfMultipleInterface.kt")
public void testMethodOfMultipleInterface() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfMultipleInterface.kt");
}
@Test
@TestMetadata("methodOfOpenClass.kt")
public void testMethodOfOpenClass() throws Exception {
runTest("js/js.translator/testData/box/jsName/methodOfOpenClass.kt");
}
@Test
@TestMetadata("overriddenMethod.kt")
public void testOverriddenMethod() throws Exception {