From 229085f3d13b09f87bc5421ec4e3f4272a78fabc Mon Sep 17 00:00:00 2001 From: Leonid Startsev Date: Thu, 20 May 2021 14:22:34 +0300 Subject: [PATCH] Support default parameter values in @SerialInfo annotations #KT-46739 Fixed Fixes https://github.com/Kotlin/kotlinx.serialization/issues/1461 --- .../serialization/compiler/backend/ir/SerializerIrGenerator.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt index 5b26c806398..d7fba2dc6c3 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt @@ -166,7 +166,8 @@ open class SerializerIrGenerator( ?: error("No constructor args found for SerialInfo annotation Impl class: ${implClass.render()}") irCall(ctor).apply { for (i in 0 until annotationCall.valueArgumentsCount) { - putValueArgument(i, annotationCall.getValueArgument(i)!!.deepCopyWithVariables()) + val argument = annotationCall.getValueArgument(i) ?: annotationClass.primaryConstructor!!.valueParameters[i].defaultValue?.expression + putValueArgument(i, argument!!.deepCopyWithVariables()) } } } else {