diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGeneration.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGeneration.kt index 2936544d2eb..0bfcd8828da 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGeneration.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGeneration.kt @@ -96,7 +96,7 @@ fun StatementGenerator.generateValueArgument(valueArgument: ResolvedValueArgumen TODO("Unexpected valueArgument: ${valueArgument.javaClass.simpleName}") } -fun StatementGenerator.pregenerateCall(resolvedCall: ResolvedCall<*>): PregeneratedCall { +fun StatementGenerator.pregenerateCall(resolvedCall: ResolvedCall<*>): CallBuilder { val call = pregenerateCallReceivers(resolvedCall) resolvedCall.valueArgumentsByIndex!!.forEachIndexed { index, valueArgument -> @@ -106,8 +106,8 @@ fun StatementGenerator.pregenerateCall(resolvedCall: ResolvedCall<*>): Pregenera return call } -fun StatementGenerator.pregenerateCallReceivers(resolvedCall: ResolvedCall<*>): PregeneratedCall { - val call = PregeneratedCall(resolvedCall) +fun StatementGenerator.pregenerateCallReceivers(resolvedCall: ResolvedCall<*>): CallBuilder { + val call = CallBuilder(resolvedCall) val ktDefaultCallElement = resolvedCall.call.callElement call.callReceiver = generateCallReceiver(ktDefaultCallElement, resolvedCall.dispatchReceiver, resolvedCall.extensionReceiver, resolvedCall.call.isSafeCall()) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt index 4681d725c15..646cb7ff295 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/CallGenerator.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffset -import org.jetbrains.kotlin.psi2ir.intermediate.PregeneratedCall +import org.jetbrains.kotlin.psi2ir.intermediate.CallBuilder import org.jetbrains.kotlin.psi2ir.intermediate.getValueArgumentsInParameterOrder import org.jetbrains.kotlin.psi2ir.intermediate.isValueArgumentReorderingRequired import org.jetbrains.kotlin.psi2ir.intermediate.IntermediateValue @@ -42,7 +42,7 @@ class CallGenerator( fun generateCall( startOffset: Int, endOffset: Int, - call: PregeneratedCall, + call: CallBuilder, operator: IrOperator? = null ): IrExpression { val descriptor = call.descriptor @@ -61,7 +61,7 @@ class CallGenerator( descriptor: PropertyDescriptor, startOffset: Int, endOffset: Int, - call: PregeneratedCall + call: CallBuilder ): IrExpression { return call.callReceiver.call { dispatchReceiverValue, extensionReceiverValue -> IrGetterCallImpl(startOffset, endOffset, descriptor.getter!!, @@ -76,7 +76,7 @@ class CallGenerator( startOffset: Int, endOffset: Int, operator: IrOperator?, - call: PregeneratedCall + call: CallBuilder ): IrExpression { val returnType = descriptor.returnType @@ -105,7 +105,7 @@ class CallGenerator( irCall: IrCall, startOffset: Int, endOffset: Int, - call: PregeneratedCall, + call: CallBuilder, resultType: KotlinType? ): IrExpression { val resolvedCall = call.original @@ -141,8 +141,8 @@ class CallGenerator( } } -fun CallGenerator.generateCall(ktElement: KtElement, call: PregeneratedCall, operator: IrOperator? = null) = +fun CallGenerator.generateCall(ktElement: KtElement, call: CallBuilder, operator: IrOperator? = null) = generateCall(ktElement.startOffset, ktElement.endOffset, call, operator) -fun CallGenerator.generateCall(irExpression: IrExpression, call: PregeneratedCall, operator: IrOperator? = null) = +fun CallGenerator.generateCall(irExpression: IrExpression, call: CallBuilder, operator: IrOperator? = null) = generateCall(irExpression.startOffset, irExpression.endOffset, call, operator) diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt index e7c5937c218..50d12fe2e81 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/ArrayAccessAssignmentReceiver.kt @@ -24,8 +24,8 @@ import java.lang.AssertionError class ArrayAccessAssignmentReceiver( val irArray: IrExpression, val irIndices: List, - val indexedGetCall: PregeneratedCall?, - val indexedSetCall: PregeneratedCall?, + val indexedGetCall: CallBuilder?, + val indexedSetCall: CallBuilder?, val callGenerator: CallGenerator, val startOffset: Int, val endOffset: Int, @@ -54,7 +54,7 @@ class ArrayAccessAssignmentReceiver( return irBlock } - private fun PregeneratedCall.fillArrayAndIndexArguments(arrayValue: IntermediateValue, indexValues: List) { + private fun CallBuilder.fillArrayAndIndexArguments(arrayValue: IntermediateValue, indexValues: List) { setExplicitReceiverValue(arrayValue) indexValues.forEachIndexed { i, irIndexValue -> irValueArgumentsByIndex[i] = irIndexValue.load() diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PregeneratedCall.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/CallBuilder.kt similarity index 79% rename from compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PregeneratedCall.kt rename to compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/CallBuilder.kt index 559750fe822..7ba8539511b 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/PregeneratedCall.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/CallBuilder.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.psi2ir.isValueArgumentReorderingRequired import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.types.KotlinType -class PregeneratedCall(val original: ResolvedCall<*>) { +class CallBuilder(val original: ResolvedCall<*>) { val descriptor: CallableDescriptor = original.resultingDescriptor var superQualifier: ClassDescriptor? = null @@ -38,34 +38,34 @@ class PregeneratedCall(val original: ResolvedCall<*>) { irValueArgumentsByIndex[valueParameterDescriptor.index] } -val PregeneratedCall.argumentsCount: Int get() = +val CallBuilder.argumentsCount: Int get() = irValueArgumentsByIndex.size -fun PregeneratedCall.getValueArgumentsInParameterOrder(): List = +fun CallBuilder.getValueArgumentsInParameterOrder(): List = descriptor.valueParameters.map { irValueArgumentsByIndex[it.index] } -fun PregeneratedCall.isValueArgumentReorderingRequired() = +fun CallBuilder.isValueArgumentReorderingRequired() = original.isValueArgumentReorderingRequired() -val PregeneratedCall.hasExtensionReceiver: Boolean get() = +val CallBuilder.hasExtensionReceiver: Boolean get() = descriptor.extensionReceiverParameter != null -val PregeneratedCall.hasDispatchReceiver: Boolean get() = +val CallBuilder.hasDispatchReceiver: Boolean get() = descriptor.dispatchReceiverParameter != null -val PregeneratedCall.extensionReceiverType: KotlinType? get() = +val CallBuilder.extensionReceiverType: KotlinType? get() = descriptor.extensionReceiverParameter?.type -val PregeneratedCall.dispatchReceiverType: KotlinType? get() = +val CallBuilder.dispatchReceiverType: KotlinType? get() = descriptor.dispatchReceiverParameter?.type -val PregeneratedCall.explicitReceiverParameter: ReceiverParameterDescriptor? get() = +val CallBuilder.explicitReceiverParameter: ReceiverParameterDescriptor? get() = descriptor.extensionReceiverParameter ?: descriptor.dispatchReceiverParameter -val PregeneratedCall.explicitReceiverType: KotlinType? get() = +val CallBuilder.explicitReceiverType: KotlinType? get() = explicitReceiverParameter?.type -fun PregeneratedCall.setExplicitReceiverValue(explicitReceiverValue: IntermediateValue) { +fun CallBuilder.setExplicitReceiverValue(explicitReceiverValue: IntermediateValue) { val previousCallReceiver = callReceiver callReceiver = object : CallReceiver { override fun call(withDispatchAndExtensionReceivers: (IntermediateValue?, IntermediateValue?) -> IrExpression): IrExpression { diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt index 6d82359676b..d6e65833815 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/LValueWithGetterAndSetterCalls.kt @@ -20,14 +20,14 @@ import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrOperator import org.jetbrains.kotlin.psi2ir.generators.CallGenerator -import org.jetbrains.kotlin.psi2ir.intermediate.PregeneratedCall +import org.jetbrains.kotlin.psi2ir.intermediate.CallBuilder import org.jetbrains.kotlin.psi2ir.intermediate.argumentsCount import org.jetbrains.kotlin.types.KotlinType class LValueWithGetterAndSetterCalls( val callGenerator: CallGenerator, - val getterCall: PregeneratedCall?, - val setterCall: PregeneratedCall?, + val getterCall: CallBuilder?, + val setterCall: CallBuilder?, val startOffset: Int, val endOffset: Int, val operator: IrOperator? = null diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceCallValue.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceCallValue.kt index 682c587298e..7e544511a79 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceCallValue.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/intermediate/OnceCallValue.kt @@ -20,12 +20,12 @@ import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrOperator import org.jetbrains.kotlin.psi2ir.generators.CallGenerator import org.jetbrains.kotlin.psi2ir.generators.StatementGenerator -import org.jetbrains.kotlin.psi2ir.intermediate.PregeneratedCall +import org.jetbrains.kotlin.psi2ir.intermediate.CallBuilder import org.jetbrains.kotlin.types.KotlinType class OnceCallValue( val statementGenerator: StatementGenerator, - val call: PregeneratedCall, + val call: CallBuilder, val startOffset: Int, val endOffset: Int, val operator: IrOperator? = null