JVM IR: remove unneeded usages of MethodSignatureMapper.mapToCallableMethod
This commit is contained in:
-3
@@ -957,9 +957,6 @@ class ExpressionCodegen(
|
||||
return classReference.onStack
|
||||
}
|
||||
|
||||
private fun resolveToCallable(irCall: IrFunctionAccessExpression, isSuper: Boolean): IrCallableMethod =
|
||||
methodSignatureMapper.mapToCallableMethod(irCall, isSuper)
|
||||
|
||||
private fun getOrCreateCallGenerator(element: IrFunctionAccessExpression, data: BlockInfo): IrCallGenerator {
|
||||
if (!element.symbol.owner.isInlineFunctionCall(context) ||
|
||||
classCodegen.irClass.fileParent.fileEntry is MultifileFacadeFileEntry
|
||||
|
||||
+6
-4
@@ -17,8 +17,10 @@
|
||||
package org.jetbrains.kotlin.backend.jvm.intrinsics
|
||||
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||
import org.jetbrains.kotlin.backend.jvm.codegen.mapClass
|
||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionAccessExpression
|
||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature
|
||||
|
||||
object ArrayIterator : IntrinsicMethod() {
|
||||
@@ -27,11 +29,11 @@ object ArrayIterator : IntrinsicMethod() {
|
||||
signature: JvmMethodSignature,
|
||||
context: JvmBackendContext
|
||||
): IrIntrinsicFunction {
|
||||
val method = context.methodSignatureMapper.mapToCallableMethod(expression, false)
|
||||
return IrIntrinsicFunction.create(expression, signature, context, method.owner) {
|
||||
val methodSignature = "(${method.owner.descriptor})${method.asmMethod.returnType.descriptor}"
|
||||
val owner = context.typeMapper.mapClass(expression.symbol.owner.parentAsClass)
|
||||
return IrIntrinsicFunction.create(expression, signature, context, owner) {
|
||||
val methodSignature = "(${owner.descriptor})${signature.returnType.descriptor}"
|
||||
val intrinsicOwner =
|
||||
if (AsmUtil.isPrimitive(method.owner.elementType))
|
||||
if (AsmUtil.isPrimitive(owner.elementType))
|
||||
"kotlin/jvm/internal/ArrayIteratorsKt"
|
||||
else
|
||||
"kotlin/jvm/internal/ArrayIteratorKt"
|
||||
|
||||
+8
-3
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.jvm.intrinsics
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||
import org.jetbrains.kotlin.backend.jvm.codegen.BlockInfo
|
||||
import org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen
|
||||
import org.jetbrains.kotlin.backend.jvm.codegen.mapClass
|
||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||
import org.jetbrains.kotlin.codegen.Callable
|
||||
import org.jetbrains.kotlin.codegen.StackValue
|
||||
@@ -16,6 +17,7 @@ import org.jetbrains.kotlin.ir.expressions.IrFunctionAccessExpression
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.util.dump
|
||||
import org.jetbrains.kotlin.ir.util.isVararg
|
||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
||||
import org.jetbrains.kotlin.ir.util.substitute
|
||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
@@ -138,10 +140,13 @@ open class IrIntrinsicFunction(
|
||||
}
|
||||
|
||||
fun IrFunctionAccessExpression.argTypes(context: JvmBackendContext): ArrayList<Type> {
|
||||
val callableMethod = context.methodSignatureMapper.mapToCallableMethod(this, false)
|
||||
val callee = symbol.owner
|
||||
val signature = context.methodSignatureMapper.mapSignatureSkipGeneric(callee)
|
||||
return arrayListOf<Type>().apply {
|
||||
callableMethod.dispatchReceiverType?.let { add(it) }
|
||||
addAll(callableMethod.asmMethod.argumentTypes)
|
||||
if (dispatchReceiver != null) {
|
||||
add(context.typeMapper.mapClass(callee.parentAsClass))
|
||||
}
|
||||
addAll(signature.asmMethod.argumentTypes)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user