From 99f1329c148608d29b1347ce70fd86fb2e87f8f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Wed, 31 Jul 2019 15:56:10 +0200 Subject: [PATCH] JVM IR: Remove varargs from PropertyReferenceLowering --- .../backend/jvm/lower/PropertyReferenceLowering.kt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt index b7c03494644..28d7ce96ab4 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt @@ -14,6 +14,8 @@ import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin +import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder +import org.jetbrains.kotlin.backend.jvm.ir.irArrayOf import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.builders.* import org.jetbrains.kotlin.ir.builders.declarations.addFunction @@ -21,7 +23,6 @@ import org.jetbrains.kotlin.ir.builders.declarations.buildClass import org.jetbrains.kotlin.ir.builders.declarations.buildField import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* -import org.jetbrains.kotlin.ir.expressions.impl.IrVarargImpl import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.types.createType import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl @@ -64,9 +65,6 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : Class private val IrMemberAccessExpression.signature: String get() = getter?.let { getter -> localPropertyIndices[getter]?.let { "" } } ?: getter?.owner?.signature ?: field!!.owner.signature - private val IrMemberAccessExpression.symbol: IrSymbol - get() = getter?.owner?.symbol ?: field!!.owner.symbol - private val arrayItemGetter = context.ir.symbols.array.owner.functions.single { it.name.asString() == "get" } @@ -321,11 +319,9 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : Class if (kProperties.isNotEmpty()) { irClass.declarations.add(0, kPropertiesField.apply { parent = irClass - initializer = context.createIrBuilder(irClass.symbol).run { + initializer = context.createJvmIrBuilder(irClass.symbol).run { val initializers = kProperties.values.sortedBy { it.index }.map { it.initializer } - irExprBody(irCall(this@PropertyReferenceLowering.context.ir.symbols.arrayOf).apply { - putValueArgument(0, IrVarargImpl(startOffset, endOffset, kPropertiesFieldType, kPropertyStarType, initializers)) - }) + irExprBody(irArrayOf(kPropertiesFieldType, initializers)) } })