From dc5297f3cede7975d8b0efc8ed5abb1f559ed223 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 10 Feb 2020 17:24:32 +0300 Subject: [PATCH] Fix for https://github.com/JetBrains/kotlin-native/issues/3343 --- .../kotlin/backend/konan/optimizations/Devirtualization.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt index 76c0eca8216..b579de14aff 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/Devirtualization.kt @@ -193,7 +193,7 @@ internal object Devirtualization { symbolTable.mapClassReferenceType(context.irBuiltIns.anyClass.owner), 1, "Array\$Item") val functions = mutableMapOf() val concreteClasses = mutableMapOf() - val externalFunctions = mutableMapOf() + val externalFunctions = mutableMapOf, Node>() val fields = mutableMapOf() // Do not distinguish receivers. val virtualCallSiteReceivers = mutableMapOf() @@ -1019,7 +1019,7 @@ internal object Devirtualization { val resolvedCallee = callee.resolved() val calleeConstraintGraph = createFunctionConstraintGraph(resolvedCallee, false) return if (calleeConstraintGraph == null) { - constraintGraph.externalFunctions.getOrPut(resolvedCallee) { + constraintGraph.externalFunctions.getOrPut(resolvedCallee to returnType) { val fictitiousReturnNode = ordinaryNode { "External$resolvedCallee" } if (returnType.isFinal) concreteClass(returnType).addEdge(fictitiousReturnNode)