From fd64de3f2335164b09b767cdd1e751e50c5f7e09 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Thu, 9 Mar 2017 14:56:38 +0300 Subject: [PATCH] backend: Fix lowering of default arguments to local functions Fix: external_codegen_blackbox_functions_localFunctions/kt3978.kt external_codegen_blackbox_closures/kt5589.kt --- .../backend/common/lower/LocalDeclarationsLowering.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt index dad456c15f3..e063feabbbc 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalDeclarationsLowering.kt @@ -170,7 +170,12 @@ class LocalDeclarationsLowering(val context: BackendContext) : DeclarationContai original.startOffset, original.endOffset, original.origin, it.transformedDescriptor, original.body - ) + ).apply { + original.descriptor.valueParameters.filter { it.declaresDefaultValue() }.forEach { argument -> + val body = original.getDefault(argument)!! + this.putDefault(oldParameterToNew[argument] as ValueParameterDescriptor, body) + } + } } localClasses.values.mapTo(this) {