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 8f46c4bad8b..8ae7e7daad4 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 @@ -114,7 +114,7 @@ internal fun KotlinStubs.generateCCall(expression: IrCall, builder: IrBuilderWit val callBuilder = KotlinToCCallBuilder(builder, this, isObjCMethod = false) - val callee = expression.symbol.owner as IrSimpleFunction + val callee = expression.symbol.owner // TODO: consider computing all arguments before converting. diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt index a9c67bf83b5..ede5e103ab2 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt @@ -110,7 +110,7 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain startOffset = job.startOffset, endOffset = job.endOffset, overriddenFunction = overriddenJobDescriptor, - targetSymbol = job.symbol) + targetSymbol = jobFunction.symbol) bridges += bridge expression.putValueArgument(3, IrFunctionReferenceImpl( startOffset = job.startOffset, @@ -218,7 +218,7 @@ private fun IrBlockBodyBuilder.buildTypeSafeBarrier(function: IrFunction, } private fun Context.buildBridge(startOffset: Int, endOffset: Int, - overriddenFunction: OverriddenFunctionInfo, targetSymbol: IrFunctionSymbol, + overriddenFunction: OverriddenFunctionInfo, targetSymbol: IrSimpleFunctionSymbol, superQualifierSymbol: IrClassSymbol? = null): IrFunction { val bridge = specialDeclarationsFactory.getBridge(overriddenFunction) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt index 44eb06f7a94..015e6d0093a 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/InteropLowering.kt @@ -715,7 +715,7 @@ private class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfor return builder.at(expression).run { val classPtr = getRawPtr(expression.extensionReceiver!!) - callAllocAndInit(classPtr, initMethodInfo, arguments, expression, callee as IrSimpleFunction) + callAllocAndInit(classPtr, initMethodInfo, arguments, expression, callee) } } @@ -753,7 +753,7 @@ private class InteropLoweringPart1(val context: Context) : BaseInteropIrTransfor receiver = expression.dispatchReceiver ?: expression.extensionReceiver!!, arguments = arguments, call = expression, - method = callee as IrSimpleFunction + method = callee ) } } diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DFGBuilder.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DFGBuilder.kt index d1deb8251f5..b4cb1633fef 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DFGBuilder.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/DFGBuilder.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyClass import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.IrClassSymbol +import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.* @@ -338,7 +339,7 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag ?: error("A function reference expected") val jobInvocation = IrCallImpl(expression.startOffset, expression.endOffset, jobFunctionReference.symbol.owner.returnType, - jobFunctionReference.symbol) + jobFunctionReference.symbol as IrSimpleFunctionSymbol) jobInvocation.putValueArgument(0, producerInvocation) expressions += jobInvocation @@ -665,7 +666,6 @@ internal class ModuleDFGBuilder(val context: Context, val irModule: IrModuleFrag if (callee is IrConstructor) { error("Constructor call should be done with IrConstructorCall") } else { - callee as IrSimpleFunction if (callee.isOverridable && value.superQualifierSymbol == null) { val owner = callee.parentAsClass val actualReceiverType = value.dispatchReceiver!!.type diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt index 0e545e82b35..a883a07df73 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt @@ -1402,7 +1402,7 @@ internal object Devirtualization { actualType: IrType, devirtualizedCallee: DevirtualizedCallee, arguments: List): IrCall { - val actualCallee = devirtualizedCallee.callee.irFunction!! + val actualCallee = devirtualizedCallee.callee.irFunction as IrSimpleFunction val call = IrCallImpl( callSite.startOffset, callSite.endOffset, actualType, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt index 08050038c52..bc63efc150f 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/ir/util/IrUtils2.kt @@ -238,7 +238,7 @@ fun IrBuilderWithScope.irCall(symbol: IrFunctionSymbol, typeArguments: List = emptyList()) = irCall(irFunction.symbol, typeArguments) -internal fun irCall(startOffset: Int, endOffset: Int, irFunction: IrFunction, typeArguments: List): IrCall = +internal fun irCall(startOffset: Int, endOffset: Int, irFunction: IrSimpleFunction, typeArguments: List): IrCall = IrCallImpl( startOffset, endOffset, irFunction.substitutedReturnType(typeArguments), irFunction.symbol, typeArguments.size