From 4164c0f7ef4beddbde561ecf271e380ea3ccb6ee Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 12 Sep 2023 16:15:28 +0300 Subject: [PATCH] [FIR2IR] Get rid of all usages of IrSymbol.owner from Fir2IrLazySimpleFunction ^KT-60924 --- .../jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt index 0ec04c1ce09..c825cb40493 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.ir.declarations.IrValueParameter import org.jetbrains.kotlin.ir.declarations.lazy.lazyVar import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol -import org.jetbrains.kotlin.ir.symbols.IrSymbolInternals import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource @@ -102,9 +101,11 @@ class Fir2IrLazySimpleFunction( fir.generateOverriddenFunctionSymbols(firParent) } - @OptIn(IrSymbolInternals::class) override val initialSignatureFunction: IrFunction? by lazy { - (fir.initialSignatureAttr as? FirFunction)?.symbol?.let { declarationStorage.getIrFunctionSymbol(it).owner }?.takeIf { it !== this } + val originalFunction = fir.initialSignatureAttr as? FirFunction ?: return@lazy null + declarationStorage.getOrCreateIrFunction(originalFunction, parent).also { + check(it !== this) { "Initial function can not be the same as remapped function" } + } } override val containerSource: DeserializedContainerSource?