Check method abstractness during bridge generation per method not interface

This commit is contained in:
Mikhael Bogdanov
2018-03-06 12:13:19 +01:00
parent f290b325ee
commit 2a8041e77e
19 changed files with 490 additions and 80 deletions
@@ -1471,6 +1471,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/bridges"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JS, true);
}
@TestMetadata("bridgeInInterfaceWithProperties.kt")
public void testBridgeInInterfaceWithProperties() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/bridgeInInterfaceWithProperties.kt");
doTest(fileName);
}
@TestMetadata("complexMultiInheritance.kt")
public void testComplexMultiInheritance() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/complexMultiInheritance.kt");
@@ -245,7 +245,7 @@ class ClassModelGenerator(val context: TranslationContext) {
if (memberDescriptor is FunctionDescriptor) {
val bridgesToGenerate = generateBridgesForFunctionDescriptor(memberDescriptor, identity()) {
//There is no DefaultImpls in js backend so if method non-abstract it should be recognized as non-abstract on bridges calculation
false
true
}
for (bridge in bridgesToGenerate) {