From ef8f954586fdf0c45e8755a75e3851e58e9a958f Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 21 Feb 2024 15:36:45 +0200 Subject: [PATCH] [FIR2IR] Part 7. Don't use IdSignature for code fragments Related to KT-64990 --- .../jetbrains/kotlin/fir/backend/Fir2IrConverter.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index 038cb1958d5..8c53cdd28b4 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -53,8 +53,8 @@ import org.jetbrains.kotlin.ir.interpreter.checker.EvaluationMode import org.jetbrains.kotlin.ir.interpreter.transformer.transformConst import org.jetbrains.kotlin.ir.overrides.IrFakeOverrideBuilder import org.jetbrains.kotlin.ir.symbols.UnsafeDuringIrConstructionAPI -import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorPublicSymbolImpl -import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionPublicSymbolImpl +import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl +import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl import org.jetbrains.kotlin.ir.types.IrTypeSystemContext import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.name.Name @@ -300,9 +300,7 @@ class Fir2IrConverter( declarationStorage.enterScope(irClass.symbol) - val signature = irClass.symbol.signature!! - - symbolTable.declareConstructor(signature, { IrConstructorPublicSymbolImpl(signature) }) { irSymbol -> + IrConstructorSymbolImpl().let { irSymbol -> irFactory.createConstructor( UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFINED, @@ -331,7 +329,7 @@ class Fir2IrConverter( } } - symbolTable.declareSimpleFunction(signature, { IrSimpleFunctionPublicSymbolImpl(signature) }) { irSymbol -> + IrSimpleFunctionSymbolImpl().let { irSymbol -> val lastStatement = codeFragment.block.statements.lastOrNull() val returnType = (lastStatement as? FirExpression)?.resolvedType?.toIrType(typeConverter) ?: irBuiltIns.unitType