From 4c07c708295965a7a840a42f98ae200b053206b8 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 4 Dec 2017 14:53:48 +0300 Subject: [PATCH] Removed double evaluation of enum's args --- .../kotlin/backend/konan/llvm/IrToBitcode.kt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt index 5fd31c00793..15742d1d929 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt @@ -1636,6 +1636,14 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map return context.llvm.staticData.createImmutableBinaryBlob(arg) } + + context.ir.symbols.initInstance.descriptor -> { + val callee = expression as IrCall + val initializer = callee.getValueArgument(1) as IrCall + val thiz = evaluateExpression(callee.getValueArgument(0)!!) + evaluateSimpleFunctionCall(initializer.descriptor, listOf(thiz) + evaluateExplicitArgs(initializer), lifetimes[initializer]!!) + return codegen.theUnitInstanceRef.llvm + } } } @@ -2063,13 +2071,6 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map { - val initializer = callee.getValueArgument(1) as IrCall - val thiz = evaluateExpression(callee.getValueArgument(0)!!) - evaluateSimpleFunctionCall(initializer.descriptor, listOf(thiz) + evaluateExplicitArgs(initializer), lifetimes[initializer]!!) - codegen.theUnitInstanceRef.llvm - } - else -> TODO(callee.descriptor.original.toString()) } }