From 9a1f48477162f2c67668fb0440db1aaf358cbcb9 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Mon, 4 Dec 2017 16:31:27 +0100 Subject: [PATCH] Fix equals --- .../org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt index 7b169a58f92..a49ab7a127e 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/intrinsics/Equals.kt @@ -29,8 +29,11 @@ import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter class Equals(val operator: IElementType) : IntrinsicMethod() { override fun toCallable(expression: IrMemberAccessExpression, signature: JvmMethodSignature, context: JvmBackendContext): IrIntrinsicFunction { - var leftType = context.state.typeMapper.mapType(expression.getValueArgument(0)!!.type) - var rightType = context.state.typeMapper.mapType(expression.getValueArgument(1)!!.type) + val receiverAndArgs = expression.receiverAndArgs().apply { + assert(size == 2) { "Equals expects 2 arguments, but ${joinToString()}" } + } + var leftType = context.state.typeMapper.mapType(receiverAndArgs.first().type) + var rightType = context.state.typeMapper.mapType(receiverAndArgs.last().type) if (isPrimitive(leftType) != isPrimitive(rightType)) { leftType = boxType(leftType)