IR: remove deprecated constructor of IrClassImpl

(cherry picked from commit b540c77c0ec65aafd5aaaf83826b654542e346c6)
This commit is contained in:
Alexander Udalov
2020-07-06 23:37:27 +02:00
committed by Vasily Levchenko
parent 6f9a4928b3
commit 01507bb115
3 changed files with 11 additions and 20 deletions
@@ -45,7 +45,7 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
(symbol.descriptor as? FunctionClassDescriptor)?.let { descriptor -> (symbol.descriptor as? FunctionClassDescriptor)?.let { descriptor ->
buildClass(descriptor) { buildClass(descriptor) {
declareClass(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)) ?: functionFactory(IrSimpleFunctionSymbolImpl(descriptor))
} }
private val createClassLambda = { s: IrClassSymbol, d: ClassDescriptor -> private fun createIrClass(symbol: IrClassSymbol, descriptor: ClassDescriptor): IrClass =
IrClassImpl(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, s, d) createIrClassFromDescriptor(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, symbol, descriptor)
}
private fun createClass(descriptor: FunctionClassDescriptor, declarator: SymbolTable.((IrClassSymbol) -> IrClass) -> IrClass): IrClass { private fun createClass(descriptor: FunctionClassDescriptor, declarator: SymbolTable.((IrClassSymbol) -> IrClass) -> IrClass): IrClass =
return symbolTable?.declarator { symbolTable?.declarator { createIrClass(it, descriptor) }
IrClassImpl(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, it, descriptor) ?: createIrClass(IrClassSymbolImpl(descriptor), descriptor)
} ?: createClassLambda(IrClassSymbolImpl(descriptor), descriptor)
}
private fun buildClass(descriptor: FunctionClassDescriptor, declarator: SymbolTable.((IrClassSymbol) -> IrClass) -> IrClass): IrClass = private fun buildClass(descriptor: FunctionClassDescriptor, declarator: SymbolTable.((IrClassSymbol) -> IrClass) -> IrClass): IrClass =
builtClassesMap.getOrPut(descriptor) { builtClassesMap.getOrPut(descriptor) {
@@ -184,7 +181,7 @@ internal class BuiltInFictitiousFunctionIrClassFactory(
val superTypeSymbol = when (val superTypeDescriptor = superType.constructor.declarationDescriptor) { val superTypeSymbol = when (val superTypeDescriptor = superType.constructor.declarationDescriptor) {
is FunctionClassDescriptor -> buildClass(superTypeDescriptor) { is FunctionClassDescriptor -> buildClass(superTypeDescriptor) {
declareClass(superTypeDescriptor) { declareClass(superTypeDescriptor) {
IrClassImpl(offset, offset, DECLARATION_ORIGIN_FUNCTION_CLASS, it, superTypeDescriptor) createIrClass(it, superTypeDescriptor)
} }
}.symbol }.symbol
functionSymbol.descriptor -> functionSymbol functionSymbol.descriptor -> functionSymbol
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.backend.konan.InteropBuiltIns
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.builders.IrBuilder import org.jetbrains.kotlin.ir.builders.IrBuilder
import org.jetbrains.kotlin.ir.declarations.* 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.declarations.impl.IrConstructorImpl
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrExpression
@@ -51,12 +50,8 @@ internal interface DescriptorToIrTranslationMixin {
*/ */
fun createClass(descriptor: ClassDescriptor, builder: (IrClass) -> Unit): IrClass = fun createClass(descriptor: ClassDescriptor, builder: (IrClass) -> Unit): IrClass =
symbolTable.declareClass(descriptor) { symbolTable.declareClass(descriptor) {
IrClassImpl( createIrClassFromDescriptor(
startOffset = SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB, it, descriptor
endOffset = SYNTHETIC_OFFSET,
origin = IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB,
symbol = it,
descriptor = descriptor
) )
}.also { irClass -> }.also { irClass ->
symbolTable.withScope(descriptor) { symbolTable.withScope(descriptor) {
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.konan.isNativeStdlib import org.jetbrains.kotlin.descriptors.konan.isNativeStdlib
import org.jetbrains.kotlin.descriptors.konan.kotlinLibrary import org.jetbrains.kotlin.descriptors.konan.kotlinLibrary
import org.jetbrains.kotlin.ir.declarations.* 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.IrFileImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl import org.jetbrains.kotlin.ir.declarations.impl.IrModuleFragmentImpl
import org.jetbrains.kotlin.ir.descriptors.IrAbstractFunctionFactory import org.jetbrains.kotlin.ir.descriptors.IrAbstractFunctionFactory
@@ -198,8 +197,8 @@ internal class KonanIrLinker(
val packageDescriptor = descriptor.containingDeclaration as PackageFragmentDescriptor val packageDescriptor = descriptor.containingDeclaration as PackageFragmentDescriptor
val irFile = getIrFile(packageDescriptor) val irFile = getIrFile(packageDescriptor)
val klass = symbolTable.declareClassFromLinker(descriptor, idSig) { s -> val klass = symbolTable.declareClassFromLinker(descriptor, idSig) { symbol ->
IrClassImpl(offset, offset, FORWARD_DECLARATION_ORIGIN, s, descriptor) createIrClassFromDescriptor(offset, offset, FORWARD_DECLARATION_ORIGIN, symbol, descriptor)
} }
klass.parent = irFile klass.parent = irFile