From 0628dfbc7c0c54701a56285c87836741275baef3 Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Mon, 15 Jun 2020 10:05:27 +0200 Subject: [PATCH] [IR][lowering] adopt 6adad1055b7a25506aa87bf56d881b952e3405e5 JVM IR: generate delegates to DefaultImpls for fun interfaces --- .../kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt | 4 ++-- .../org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt | 4 ++-- .../backend/konan/lower/CallableReferenceLowering.kt | 2 +- .../jetbrains/kotlin/backend/konan/lower/TestProcessor.kt | 8 +++----- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt index 5d8f270d1a8..df82076f8f3 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/EnumSpecialDescriptorsFactory.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.backend.konan -import org.jetbrains.kotlin.backend.common.ir.addFakeOverrides +import org.jetbrains.kotlin.backend.common.ir.addFakeOverridesViaIncorrectHeuristic import org.jetbrains.kotlin.backend.common.ir.addSimpleDelegatingConstructor import org.jetbrains.kotlin.backend.common.ir.createParameterDeclarations import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName @@ -115,7 +115,7 @@ internal class EnumSpecialDeclarationsFactory(val context: Context) { ) implObject.superTypes += context.irBuiltIns.anyType - implObject.addFakeOverrides() + implObject.addFakeOverridesViaIncorrectHeuristic() val itemGetterSymbol = symbols.array.functions.single { it.descriptor.name == Name.identifier("get") } val enumEntriesMap = enumClass.declarations diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index 3fb663b5d75..588293a76c7 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -1,6 +1,6 @@ package org.jetbrains.kotlin.backend.konan.cgen -import org.jetbrains.kotlin.backend.common.ir.addFakeOverrides +import org.jetbrains.kotlin.backend.common.ir.addFakeOverridesViaIncorrectHeuristic import org.jetbrains.kotlin.backend.common.ir.createDispatchReceiverParameter import org.jetbrains.kotlin.backend.common.ir.createParameterDeclarations import org.jetbrains.kotlin.backend.common.ir.simpleFunctions @@ -1318,7 +1318,7 @@ private class ObjCBlockPointerValuePassing( +irReturn(callBlock(blockPointer, arguments)) } - irClass.addFakeOverrides() + irClass.addFakeOverridesViaIncorrectHeuristic() stubs.addKotlin(irClass) return constructor diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt index 716b0259da7..729999ee81d 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt @@ -246,7 +246,7 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass } functionReferenceClass.superTypes += superTypes - functionReferenceClass.addFakeOverrides() + functionReferenceClass.addFakeOverridesViaIncorrectHeuristic() return BuiltFunctionReference(functionReferenceClass, constructor) } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt index 424240e7698..a558fdc39e2 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt @@ -5,10 +5,7 @@ package org.jetbrains.kotlin.backend.konan.lower -import org.jetbrains.kotlin.backend.common.ir.addFakeOverrides -import org.jetbrains.kotlin.backend.common.ir.createDispatchReceiverParameter -import org.jetbrains.kotlin.backend.common.ir.createParameterDeclarations -import org.jetbrains.kotlin.backend.common.ir.simpleFunctions +import org.jetbrains.kotlin.backend.common.ir.* import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.reportWarning import org.jetbrains.kotlin.backend.konan.Context @@ -35,6 +32,7 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.util.addChild import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils @@ -529,7 +527,7 @@ internal class TestProcessor (val context: Context) { companionGetter?.let { declarations += it } superTypes += symbols.baseClassSuite.typeWith(listOf(testClassType, testCompanionType)) - addFakeOverrides() + addFakeOverridesViaIncorrectHeuristic() } } //endregion