!fixup split ea
diff --git a/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.kt b/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.kt index 2e31900..86cbd860 100644 --- a/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.kt +++ b/compiler/backend-common/src/org/jetbrains/kotlin/backend/common/CodegenUtil.kt
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall -import org.jetbrains.kotlin.resolve.multiplatform.ExpectedActualResolver +import org.jetbrains.kotlin.resolve.multiplatform.findCompatibleExpectedForActual import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.util.getExceptionMessage import org.jetbrains.kotlin.utils.DFS @@ -189,9 +189,8 @@ @JvmStatic fun findExpectedFunctionForActual(descriptor: FunctionDescriptor): FunctionDescriptor? { - val compatibleExpectedFunctions = with(ExpectedActualResolver) { + val compatibleExpectedFunctions = descriptor.findCompatibleExpectedForActual(DescriptorUtils.getContainingModule(descriptor)) - } return compatibleExpectedFunctions.firstOrNull() as FunctionDescriptor? }
diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/FrameMapWithExpectActualSupport.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/FrameMapWithExpectActualSupport.kt index 2a6b7b2..0e12a46 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/FrameMapWithExpectActualSupport.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/FrameMapWithExpectActualSupport.kt
@@ -6,7 +6,7 @@ package org.jetbrains.kotlin.codegen import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.resolve.multiplatform.ExpectedActualResolver +import org.jetbrains.kotlin.resolve.multiplatform.findCompatibleActualForExpected import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver /** @@ -29,9 +29,7 @@ // in ExpressionCodegen.generateThisOrOuterFromContext by comparing classes by type constructor equality. if (parameter !is ReceiverParameterDescriptor || parameter.value !is ExtensionReceiver) return null - val actual = with(ExpectedActualResolver) { - container.findCompatibleActualForExpected(module).firstOrNull() - } + val actual = container.findCompatibleActualForExpected(module).firstOrNull() return (actual as? CallableDescriptor)?.extensionReceiverParameter }
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExpectDeclarationRemover.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExpectDeclarationRemover.kt index 63c3054..4d3fd09 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExpectDeclarationRemover.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/ExpectDeclarationRemover.kt
@@ -20,6 +20,8 @@ import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.resolve.multiplatform.ExpectedActualResolver +import org.jetbrains.kotlin.resolve.multiplatform.findCompatibleActualForExpected +import org.jetbrains.kotlin.resolve.multiplatform.findCompatibleExpectedForActual // `doRemove` means should expect-declaration be removed from IR class ExpectDeclarationRemover(val symbolTable: ReferenceSymbolTable, private val doRemove: Boolean) : IrElementVisitorVoid { @@ -108,21 +110,21 @@ private fun IrClass.findActualForExpected(): IrClass? = descriptor.findActualForExpect()?.let { symbolTable.referenceClass(it).owner } - private inline fun <reified T : MemberDescriptor> T.findActualForExpect() = with(ExpectedActualResolver) { + private inline fun <reified T : MemberDescriptor> T.findActualForExpect(): T? { val descriptor = this@findActualForExpect if (!descriptor.isExpect) error(this) - findCompatibleActualForExpected(descriptor.module).singleOrNull() - } as T? + return findCompatibleActualForExpected(descriptor.module).singleOrNull() as T? + } - private inline fun <reified T : MemberDescriptor> T.findExpectForActual() = with(ExpectedActualResolver) { + private inline fun <reified T : MemberDescriptor> T.findExpectForActual(): T? { val descriptor = this@findExpectForActual if (!descriptor.isActual) error(this) else { - findCompatibleExpectedForActual(descriptor.module).singleOrNull() + return findCompatibleExpectedForActual(descriptor.module).singleOrNull() as T? } - } as T? + } private fun IrExpression.remapExpectValueSymbols(): IrExpression { return this.transform(object : IrElementTransformerVoid() {