diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArrayIterator.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArrayIterator.kt index 0647574a4ca..9b6dbedb3bc 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArrayIterator.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArrayIterator.kt @@ -28,9 +28,9 @@ object ArrayIterator : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { + ): IntrinsicFunction { val owner = classCodegen.typeMapper.mapClass(expression.symbol.owner.parentAsClass) - return IrIntrinsicFunction.create(expression, signature, classCodegen, listOf(owner)) { + return IntrinsicFunction.create(expression, signature, classCodegen, listOf(owner)) { val methodSignature = "(${owner.descriptor})${signature.returnType.descriptor}" val intrinsicOwner = if (AsmUtil.isPrimitive(owner.elementType)) diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArraySize.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArraySize.kt index 10d605945e0..5d1a4e2b681 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArraySize.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ArraySize.kt @@ -23,8 +23,8 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature object ArraySize : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen) { it.arraylength() } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/BinaryOp.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/BinaryOp.kt index 7ddddba0808..588704a67e7 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/BinaryOp.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/BinaryOp.kt @@ -35,7 +35,7 @@ class BinaryOp(private val opcode: Int) : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction { + ): IntrinsicFunction { val returnType = signature.returnType val intermediateResultType = numberFunctionOperandType(returnType) val argTypes = if (!expression.symbol.owner.parentAsClass.defaultType.isChar()) { @@ -44,7 +44,7 @@ class BinaryOp(private val opcode: Int) : IntrinsicMethod() { listOf(Type.CHAR_TYPE, signature.valueParameters[0].asmType) } - return IrIntrinsicFunction.create(expression, signature, classCodegen, argTypes) { + return IntrinsicFunction.create(expression, signature, classCodegen, argTypes) { it.visitInsn(returnType.getOpcode(opcode)) StackValue.coerce(intermediateResultType, returnType, it) } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Clone.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Clone.kt index 35a06397cd3..832724e114d 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Clone.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Clone.kt @@ -32,14 +32,14 @@ object Clone : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction { + ): IntrinsicFunction { val isSuperCall = expression is IrCall && expression.superQualifierSymbol != null val opcode = if (isSuperCall) Opcodes.INVOKESPECIAL else Opcodes.INVOKEVIRTUAL val newSignature = signature.newReturnType(AsmTypes.OBJECT_TYPE) val argTypes0 = expression.argTypes(classCodegen) // Don't upcast receiver to java.lang.Cloneable, since 'clone' is protected in java.lang.Object. val argTypes = if (isSuperCall || argTypes0[0] == CLONEABLE_TYPE) listOf(AsmTypes.OBJECT_TYPE) else argTypes0 - return IrIntrinsicFunction.create(expression, newSignature, classCodegen, argTypes) { mv -> + return IntrinsicFunction.create(expression, newSignature, classCodegen, argTypes) { mv -> mv.visitMethodInsn(opcode, "java/lang/Object", "clone", "()Ljava/lang/Object;", false) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/CompareTo.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/CompareTo.kt index 01bba18a536..7aeac31f8f7 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/CompareTo.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/CompareTo.kt @@ -54,14 +54,14 @@ object CompareTo : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction { + ): IntrinsicFunction { val callee = expression.symbol.owner val calleeParameter = callee.dispatchReceiverParameter ?: callee.extensionReceiverParameter!! val parameterType = comparisonOperandType( classCodegen.typeMapper.mapType(calleeParameter.type), signature.valueParameters.single().asmType, ) - return IrIntrinsicFunction.create(expression, signature, classCodegen, listOf(parameterType, parameterType)) { + return IntrinsicFunction.create(expression, signature, classCodegen, listOf(parameterType, parameterType)) { genInvoke(parameterType, it) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt index 194195630f4..15f864f49b0 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt @@ -160,11 +160,11 @@ class Ieee754Equals(val operandType: Type) : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction { + ): IntrinsicFunction { class Ieee754AreEqual( val left: Type, val right: Type - ) : IrIntrinsicFunction(expression, signature, classCodegen, listOf(left, right)) { + ) : IntrinsicFunction(expression, signature, classCodegen, listOf(left, right)) { override fun genInvokeInstruction(v: InstructionAdapter) { v.invokestatic( IntrinsicMethods.INTRINSICS_CLASS_NAME, "areEqual", @@ -197,7 +197,7 @@ class Ieee754Equals(val operandType: Type) : IntrinsicMethod() { Ieee754AreEqual(AsmTypes.OBJECT_TYPE, AsmTypes.OBJECT_TYPE) !arg0isNullable && !arg1isNullable -> - object : IrIntrinsicFunction(expression, signature, classCodegen, listOf(operandType, operandType)) { + object : IntrinsicFunction(expression, signature, classCodegen, listOf(operandType, operandType)) { override fun genInvokeInstruction(v: InstructionAdapter) { StackValue.cmp(KtTokens.EQEQ, operandType, StackValue.onStack(operandType), StackValue.onStack(operandType)) .put(Type.BOOLEAN_TYPE, v) diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Increment.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Increment.kt index 4245403ede1..4eda182bb12 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Increment.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Increment.kt @@ -24,8 +24,8 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature class Increment(private val myDelta: Int) : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen) { genIncrement(signature.returnType, myDelta, it) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrIntrinsicFunction.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicFunction.kt similarity index 94% rename from compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrIntrinsicFunction.kt rename to compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicFunction.kt index 70cfeb7a4fc..a6283db0098 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrIntrinsicFunction.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicFunction.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter -abstract class IrIntrinsicFunction( +abstract class IntrinsicFunction( val expression: IrFunctionAccessExpression, val signature: JvmMethodSignature, val classCodegen: ClassCodegen, @@ -79,9 +79,9 @@ abstract class IrIntrinsicFunction( signature: JvmMethodSignature, classCodegen: ClassCodegen, argsTypes: List = expression.argTypes(classCodegen), - invokeInstruction: IrIntrinsicFunction.(InstructionAdapter) -> Unit, - ): IrIntrinsicFunction = - object : IrIntrinsicFunction(expression, signature, classCodegen, argsTypes) { + invokeInstruction: IntrinsicFunction.(InstructionAdapter) -> Unit, + ): IntrinsicFunction = + object : IntrinsicFunction(expression, signature, classCodegen, argsTypes) { override fun genInvokeInstruction(v: InstructionAdapter) = invokeInstruction(v) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicMethod.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicMethod.kt index 164a54502f0..912512e5ed6 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicMethod.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicMethod.kt @@ -17,7 +17,7 @@ abstract class IntrinsicMethod : IntrinsicMarker { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction = TODO("implement toCallable() or invoke() of $this") + ): IntrinsicFunction = TODO("implement toCallable() or invoke() of $this") open fun invoke(expression: IrFunctionAccessExpression, codegen: ExpressionCodegen, data: BlockInfo): PromisedValue? = with(codegen) { diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicShouldHaveBeenLowered.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicShouldHaveBeenLowered.kt index be7acd2c015..12e79617859 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicShouldHaveBeenLowered.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IntrinsicShouldHaveBeenLowered.kt @@ -15,7 +15,7 @@ object IntrinsicShouldHaveBeenLowered : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction { + ): IntrinsicFunction { error("Intrinsic should have been lowered: '${expression.symbol.owner.render()}'") } } \ No newline at end of file diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Inv.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Inv.kt index 2a27c4b8e86..705a04bb6dc 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Inv.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Inv.kt @@ -25,10 +25,10 @@ import org.jetbrains.org.objectweb.asm.Type object Inv : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { + ): IntrinsicFunction { val returnType = signature.returnType val type = numberFunctionOperandType(returnType) - return IrIntrinsicFunction.create(expression, signature, classCodegen, listOf(type)) { + return IntrinsicFunction.create(expression, signature, classCodegen, listOf(type)) { if (returnType == Type.LONG_TYPE) { it.lconst(-1) } else { diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrIllegalArgumentException.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrIllegalArgumentException.kt index 9dab67641a9..1f7b2cada3a 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrIllegalArgumentException.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrIllegalArgumentException.kt @@ -33,8 +33,8 @@ object IrIllegalArgumentException : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction { - return object : IrIntrinsicFunction(expression, signature, classCodegen, listOf(JAVA_STRING_TYPE)) { + ): IntrinsicFunction { + return object : IntrinsicFunction(expression, signature, classCodegen, listOf(JAVA_STRING_TYPE)) { override fun genInvokeInstruction(v: InstructionAdapter) { v.invokespecial( exceptionTypeDescriptor.internalName, diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrNoWhenBranchMatchedException.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrNoWhenBranchMatchedException.kt index 47aec612d38..174f2076b69 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrNoWhenBranchMatchedException.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IrNoWhenBranchMatchedException.kt @@ -24,8 +24,8 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature object IrNoWhenBranchMatchedException : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen) { genThrow(it, "kotlin/NoWhenBranchMatchedException", null) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IsArrayOf.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IsArrayOf.kt index 80ecf7b2d9c..d7dfb50f678 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IsArrayOf.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IsArrayOf.kt @@ -15,7 +15,7 @@ object IsArrayOf : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction = IrIntrinsicFunction.create(expression, signature, classCodegen) { v -> + ): IntrinsicFunction = IntrinsicFunction.create(expression, signature, classCodegen) { v -> val arrayType = classCodegen.context.irBuiltIns.arrayClass.typeWith(expression.getTypeArgument(0)!!) v.instanceOf(classCodegen.typeMapper.mapType(arrayType)) } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt index bcc5f80d84b..7c8445b3268 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/IteratorNext.kt @@ -29,12 +29,12 @@ import org.jetbrains.org.objectweb.asm.Type object IteratorNext : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { + ): IntrinsicFunction { // If the array element type is unboxed primitive, do not unbox. Otherwise AsmUtil.unbox throws exception val type = if (AsmUtil.isBoxedPrimitiveType(signature.returnType)) AsmUtil.unboxType(signature.returnType) else signature.returnType val newSignature = signature.newReturnType(type) val primitiveClassName = getKotlinPrimitiveClassName(type) - return IrIntrinsicFunction.create(expression, newSignature, classCodegen, listOf(getPrimitiveIteratorType(primitiveClassName))) { + return IntrinsicFunction.create(expression, newSignature, classCodegen, listOf(getPrimitiveIteratorType(primitiveClassName))) { it.invokevirtual( getPrimitiveIteratorType(primitiveClassName).internalName, "next${primitiveClassName.asString()}", diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/MonitorInstruction.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/MonitorInstruction.kt index 9d8d1dbe26c..fc8fd026ad0 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/MonitorInstruction.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/MonitorInstruction.kt @@ -33,8 +33,8 @@ class MonitorInstruction private constructor(private val opcode: Int) : Intrinsi override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen, listOf(OBJECT_TYPE)) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen, listOf(OBJECT_TYPE)) { it.visitInsn(opcode) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/NumberCast.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/NumberCast.kt index dc1f7d3b1f6..7f02d992678 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/NumberCast.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/NumberCast.kt @@ -24,8 +24,8 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature object NumberCast : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen) { StackValue.coerce(argsTypes[0], signature.returnType, it) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeTo.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeTo.kt index cd6997bccae..3b9ea26a590 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeTo.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeTo.kt @@ -17,9 +17,9 @@ import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter object RangeTo : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { + ): IntrinsicFunction { val argType = mapRangeTypeToPrimitiveType(signature.returnType) - return object : IrIntrinsicFunction( + return object : IntrinsicFunction( expression, signature, classCodegen, listOf(argType) + signature.valueParameters.map { argType } ) { override fun genInvokeInstruction(v: InstructionAdapter) { diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeUntil.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeUntil.kt index c2dda4fbed9..0e00ba00833 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeUntil.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/RangeUntil.kt @@ -14,8 +14,8 @@ import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter object RangeUntil : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction { - return object : IrIntrinsicFunction(expression, signature, classCodegen, expression.argTypes(classCodegen)) { + ): IntrinsicFunction { + return object : IntrinsicFunction(expression, signature, classCodegen, expression.argTypes(classCodegen)) { override fun genInvokeInstruction(v: InstructionAdapter) { v.invokestatic( "kotlin/ranges/RangesKt", "until", diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringGetChar.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringGetChar.kt index 510283cabe2..b27341adcff 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringGetChar.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringGetChar.kt @@ -23,8 +23,8 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature object StringGetChar : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen) { it.invokevirtual("java/lang/String", "charAt", "(I)C", false) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringPlus.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringPlus.kt index 22196d61998..e3f99da1caf 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringPlus.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/StringPlus.kt @@ -18,8 +18,8 @@ object StringPlus : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction = - IrIntrinsicFunction.create(expression, signature, classCodegen, listOf(AsmTypes.JAVA_STRING_TYPE, AsmTypes.OBJECT_TYPE)) { + ): IntrinsicFunction = + IntrinsicFunction.create(expression, signature, classCodegen, listOf(AsmTypes.JAVA_STRING_TYPE, AsmTypes.OBJECT_TYPE)) { it.invokestatic( IntrinsicMethods.INTRINSICS_CLASS_NAME, "stringPlus", diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ThrowKotlinNothingValueException.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ThrowKotlinNothingValueException.kt index 219a3f64841..ecbdde207b3 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ThrowKotlinNothingValueException.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/ThrowKotlinNothingValueException.kt @@ -15,8 +15,8 @@ object ThrowKotlinNothingValueException : IntrinsicMethod() { expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen - ): IrIntrinsicFunction = - IrIntrinsicFunction.create(expression, signature, classCodegen) { mv -> + ): IntrinsicFunction = + IntrinsicFunction.create(expression, signature, classCodegen) { mv -> if (classCodegen.context.state.useKotlinNothingValueException) { mv.anew(Type.getObjectType("kotlin/KotlinNothingValueException")) mv.dup() diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryMinus.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryMinus.kt index 6b25fed258e..604a277d5fb 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryMinus.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryMinus.kt @@ -24,8 +24,8 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature object UnaryMinus : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen) { it.neg(numberFunctionOperandType(signature.returnType)) } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryPlus.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryPlus.kt index 618cdcc3159..f7ffc7e51b4 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryPlus.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/intrinsics/UnaryPlus.kt @@ -23,8 +23,8 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature object UnaryPlus : IntrinsicMethod() { override fun toCallable( expression: IrFunctionAccessExpression, signature: JvmMethodSignature, classCodegen: ClassCodegen, - ): IrIntrinsicFunction { - return IrIntrinsicFunction.create(expression, signature, classCodegen) { + ): IntrinsicFunction { + return IntrinsicFunction.create(expression, signature, classCodegen) { // Do nothing. } }