[IR] Minor: backend refactoring

This commit is contained in:
Ivan Kylchik
2023-08-04 11:24:35 +02:00
committed by Space Team
parent 55092da03b
commit 2b5f839fac
4 changed files with 5 additions and 9 deletions
@@ -1052,7 +1052,7 @@ private fun IrDeclarationParent.createThisReceiverParameter(
origin: IrDeclarationOrigin, origin: IrDeclarationOrigin,
type: IrType type: IrType
): IrValueParameter = ): IrValueParameter =
context.symbolTable.irFactory.createValueParameter( context.irFactory.createValueParameter(
startOffset = startOffset, startOffset = startOffset,
endOffset = endOffset, endOffset = endOffset,
origin = origin, origin = origin,
@@ -201,7 +201,7 @@ class JvmBackendContext(
} }
state.multiFieldValueClassUnboxInfo = lambda@{ descriptor -> state.multiFieldValueClassUnboxInfo = lambda@{ descriptor ->
val irClass = symbolTable.lazyWrapper.descriptorExtension.referenceClass(descriptor).owner val irClass = referenceClass(descriptor).owner
val node = multiFieldValueClassReplacements.getRootMfvcNodeOrNull(irClass) ?: return@lambda null val node = multiFieldValueClassReplacements.getRootMfvcNodeOrNull(irClass) ?: return@lambda null
val leavesInfo = val leavesInfo =
node.leaves.map { Triple(defaultTypeMapper.mapType(it.type), it.fullMethodName.asString(), it.fullFieldName.asString()) } node.leaves.map { Triple(defaultTypeMapper.mapType(it.type), it.fullMethodName.asString(), it.fullFieldName.asString()) }
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.ir.util.isSuspendFunction as isSuspendFunctionImpl
open class IrTypeMapper(private val context: JvmBackendContext) : KotlinTypeMapperBase(), TypeMappingContext<JvmSignatureWriter> { open class IrTypeMapper(private val context: JvmBackendContext) : KotlinTypeMapperBase(), TypeMappingContext<JvmSignatureWriter> {
override val typeSystem: IrTypeSystemContext = context.typeSystem override val typeSystem: IrTypeSystemContext = context.typeSystem
override val typeContext: TypeSystemCommonBackendContextForTypeMapping = IrTypeCheckerContextForTypeMapping(typeSystem, context) override val typeContext: TypeSystemCommonBackendContextForTypeMapping = IrTypeCheckerContextForTypeMapping(context)
override fun mapClass(classifier: ClassifierDescriptor): Type = override fun mapClass(classifier: ClassifierDescriptor): Type =
when (classifier) { when (classifier) {
@@ -223,9 +223,8 @@ open class IrTypeMapper(private val context: JvmBackendContext) : KotlinTypeMapp
} }
private class IrTypeCheckerContextForTypeMapping( private class IrTypeCheckerContextForTypeMapping(
private val baseContext: IrTypeSystemContext,
private val backendContext: JvmBackendContext private val backendContext: JvmBackendContext
) : IrTypeSystemContext by baseContext, TypeSystemCommonBackendContextForTypeMapping { ) : IrTypeSystemContext by backendContext.typeSystem, TypeSystemCommonBackendContextForTypeMapping {
override fun TypeConstructorMarker.isTypeParameter(): Boolean { override fun TypeConstructorMarker.isTypeParameter(): Boolean {
return this is IrTypeParameterSymbol return this is IrTypeParameterSymbol
} }
@@ -13,10 +13,7 @@ import org.jetbrains.kotlin.ir.util.*
@OptIn(ObsoleteDescriptorBasedAPI::class) @OptIn(ObsoleteDescriptorBasedAPI::class)
class IrLazySymbolTable(private val originalTable: SymbolTable) : ReferenceSymbolTable by originalTable { class IrLazySymbolTable(private val originalTable: SymbolTable) : ReferenceSymbolTable by originalTable {
/*Don't force builtins class linking before unbound symbols linking: otherwise stdlib compilation will fail*/
val lock: IrLock get() = originalTable.lock
/*Don't force builtins class linking before unbound symbols linking: otherwise stdlib compilation will failed*/
var stubGenerator: DeclarationStubGenerator? = null var stubGenerator: DeclarationStubGenerator? = null
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI