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 ->
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
@@ -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) {
@@ -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