From 3bb946e144231ef91da2f39cbed10b0751a79ed0 Mon Sep 17 00:00:00 2001 From: Konstantin Anisimov Date: Thu, 8 Dec 2016 11:26:22 +0300 Subject: [PATCH] CODEGEN: fix of string concatenation issue --- .../src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt | 3 +-- 1 file changed, 1 insertion(+), 2 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 4ed45967eff..48e29ae3e8b 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 @@ -775,14 +775,13 @@ internal class CodeGeneratorVisitor(val context: Context) : IrElementVisitorVoid private fun evaluateStringConcatenation(tmpVariableName: String, value: IrStringConcatenation): LLVMValueRef? { val stringPlus = KonanPlatform.builtIns.stringType.memberScope.getContributedFunctions( Name.identifier("plus"), NoLookupLocation.FROM_BACKEND).first() - var res:LLVMValueRef? = null val strings:List = value.arguments.map { val descriptor = getToString(it.type) val args = listOf(evaluateExpression(codegen.newVar(), it)!!) return@map evaluateSimpleFunctionCall(codegen.newVar(), descriptor, args) } - val concatResult = strings.take(1).fold(strings.first()) {res, it -> evaluateSimpleFunctionCall(codegen.newVar(), stringPlus, listOf(res, it))} + val concatResult = strings.drop(1).fold(strings.first()) {res, it -> evaluateSimpleFunctionCall(codegen.newVar(), stringPlus, listOf(res, it))} return concatResult }