IR: Refactor primitive arrays handling in the new IrBuiltIns

for better compatibility e.g. with native
This commit is contained in:
Ilya Chernikov
2021-06-29 11:51:27 +02:00
committed by TeamCityServer
parent 3b2bb2ba9f
commit 48a3c64901
10 changed files with 47 additions and 26 deletions
@@ -48,15 +48,8 @@ import org.jetbrains.kotlin.types.checker.intersectTypes
import org.jetbrains.kotlin.types.typeUtil.isPrimitiveNumberType
import org.jetbrains.kotlin.types.typeUtil.makeNotNullable
import org.jetbrains.kotlin.types.typeUtil.makeNullable
import kotlin.collections.Map
import kotlin.collections.contains
import kotlin.collections.get
import kotlin.collections.listOf
import kotlin.collections.mapOf
import kotlin.collections.mapTo
import kotlin.collections.set
import kotlin.collections.toMap
import kotlin.collections.zip
class OperatorExpressionGenerator(statementGenerator: StatementGenerator) : StatementGeneratorExtension(statementGenerator) {
@@ -443,7 +436,7 @@ class OperatorExpressionGenerator(statementGenerator: StatementGenerator) : Stat
return memberScope.findSingleFunction(Name.identifier("to$targetTypeName"))
}
private val primitiveTypeMapping = context.irBuiltInsOverDescriptors.run { primitiveTypes.zip(primitiveIrTypes).toMap() }
private val primitiveTypeMapping: Map<SimpleType, IrType> = context.irBuiltInsOverDescriptors.run { primitiveTypes.zip(primitiveIrTypes).toMap() }
private fun kotlinTypeToIrType(kotlinType: KotlinType?) = kotlinType?.let { primitiveTypeMapping[it] }
private fun generateComparisonOperator(ktExpression: KtBinaryExpression, origin: IrStatementOrigin): IrExpression {