From 791712a22a6e31562c442d77630d8943b34b0ce0 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 3 Apr 2017 17:30:44 +0300 Subject: [PATCH] Fixed bug with inline function call: run substituter on descriptors --- .../kotlin/backend/konan/lower/FunctionInlining.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt index 053aa9a6a41..9b5a75a90b7 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt @@ -371,9 +371,11 @@ internal class FunctionInlining(val context: Context): IrElementTransformerVoid( val typeSubstitutor = createTypeSubstitutor() val typeArguments = substituteTypeArguments(irCall, typeSubstitutor) val returnType = typeSubstitutor.substitute(irCall.type, Variance.INVARIANT) ?: irCall.type + val descriptor = irCall.descriptor.substitute(typeSubstitutor)!! + val superQualifier = irCall.superQualifier?.substitute(typeSubstitutor) - return IrCallImpl(irCall.startOffset, irCall.endOffset, returnType, irCall.descriptor, - typeArguments, irCall.origin, irCall.superQualifier).apply { + return IrCallImpl(irCall.startOffset, irCall.endOffset, returnType, descriptor, + typeArguments, irCall.origin, superQualifier).apply { irCall.descriptor.valueParameters.forEach { val valueArgument = irCall.getValueArgument(it) putValueArgument(it.index, valueArgument)