From 01507bb115d2a18544ea08580a8cafa1e6fb8b17 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 6 Jul 2020 23:37:27 +0200 Subject: [PATCH] IR: remove deprecated constructor of IrClassImpl (cherry picked from commit b540c77c0ec65aafd5aaaf83826b654542e346c6) --- .../BuiltInFictitiousFunctionIrClassFactory.kt | 17 +++++++---------- .../interop/DescriptorToIrTranslationUtils.kt | 9 ++------- .../konan/serialization/KonanIrlinker.kt | 5 ++--- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt index 59818fbd4ca..b364e199012 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt @@ -45,7 +45,7 @@ internal class BuiltInFictitiousFunctionIrClassFactory( (symbol.descriptor as? FunctionClassDescriptor)?.let { descriptor -> buildClass(descriptor) { declareClass(descriptor) { - IrClassImpl(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, it, descriptor) + createIrClass(it, descriptor) } } } @@ -152,15 +152,12 @@ internal class BuiltInFictitiousFunctionIrClassFactory( ?: functionFactory(IrSimpleFunctionSymbolImpl(descriptor)) } - private val createClassLambda = { s: IrClassSymbol, d: ClassDescriptor -> - IrClassImpl(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, s, d) - } + private fun createIrClass(symbol: IrClassSymbol, descriptor: ClassDescriptor): IrClass = + createIrClassFromDescriptor(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, symbol, descriptor) - private fun createClass(descriptor: FunctionClassDescriptor, declarator: SymbolTable.((IrClassSymbol) -> IrClass) -> IrClass): IrClass { - return symbolTable?.declarator { - IrClassImpl(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, it, descriptor) - } ?: createClassLambda(IrClassSymbolImpl(descriptor), descriptor) - } + private fun createClass(descriptor: FunctionClassDescriptor, declarator: SymbolTable.((IrClassSymbol) -> IrClass) -> IrClass): IrClass = + symbolTable?.declarator { createIrClass(it, descriptor) } + ?: createIrClass(IrClassSymbolImpl(descriptor), descriptor) private fun buildClass(descriptor: FunctionClassDescriptor, declarator: SymbolTable.((IrClassSymbol) -> IrClass) -> IrClass): IrClass = builtClassesMap.getOrPut(descriptor) { @@ -184,7 +181,7 @@ internal class BuiltInFictitiousFunctionIrClassFactory( val superTypeSymbol = when (val superTypeDescriptor = superType.constructor.declarationDescriptor) { is FunctionClassDescriptor -> buildClass(superTypeDescriptor) { declareClass(superTypeDescriptor) { - IrClassImpl(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, it, superTypeDescriptor) + createIrClass(it, superTypeDescriptor) } }.symbol functionSymbol.descriptor -> functionSymbol diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt index 6b629186878..2233d5a7382 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/interop/DescriptorToIrTranslationUtils.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.backend.konan.InteropBuiltIns import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.builders.IrBuilder import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.expressions.IrExpression @@ -51,12 +50,8 @@ internal interface DescriptorToIrTranslationMixin { */ fun createClass(descriptor: ClassDescriptor, builder: (IrClass) -> Unit): IrClass = symbolTable.declareClass(descriptor) { - IrClassImpl( - startOffset = SYNTHETIC_OFFSET, - endOffset = SYNTHETIC_OFFSET, - origin = IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB, - symbol = it, - descriptor = descriptor + createIrClassFromDescriptor( + SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB, it, descriptor ) }.also { irClass -> symbolTable.withScope(descriptor) { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt index 2a1fd2a9ae4..7d7cb25c98f 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt @@ -29,7 +29,6 @@ import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.konan.isNativeStdlib import org.jetbrains.kotlin.descriptors.konan.kotlinLibrary import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl import org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl import org.jetbrains.kotlin.ir.descriptors.IrAbstractFunctionFactory @@ -198,8 +197,8 @@ internal class KonanIrLinker( val packageDescriptor = descriptor.containingDeclaration as PackageFragmentDescriptor val irFile = getIrFile(packageDescriptor) - val klass = symbolTable.declareClassFromLinker(descriptor, idSig) { s -> - IrClassImpl(offset, offset, FORWARD_DECLARATION_ORIGIN, s, descriptor) + val klass = symbolTable.declareClassFromLinker(descriptor, idSig) { symbol -> + createIrClassFromDescriptor(offset, offset, FORWARD_DECLARATION_ORIGIN, symbol, descriptor) } klass.parent = irFile