From 7ecf4b17b6829014c73a83c7103964ded2f11162 Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Thu, 20 Aug 2020 20:15:34 +0300 Subject: [PATCH] Change evaluation function for arrayOf For now it will get only elements variable from stack instead of all --- .../ir/interpreter/intrinsics/IntrinsicImplementations.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicImplementations.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicImplementations.kt index 99723bae138..0ac84992a4f 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicImplementations.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/intrinsics/IntrinsicImplementations.kt @@ -42,7 +42,8 @@ internal object ArrayOf : IntrinsicBase() { } override fun evaluate(irFunction: IrFunction, stack: Stack, interpret: IrElement.() -> ExecutionResult): ExecutionResult { - val array = irFunction.getArgsForMethodInvocation(stack.getAll()).toTypedArray() + val elementsVariable = irFunction.valueParameters.single().symbol + val array = irFunction.getArgsForMethodInvocation(listOf(stack.getVariable(elementsVariable))).toTypedArray() val typeArguments = irFunction.typeParameters.map { stack.getVariable(it.symbol) } stack.pushReturnValue(array.toState(irFunction.returnType).apply { addTypeArguments(typeArguments) }) return Next