From 80c262ec6654f3dc65063cb0d4d3a612028105bd Mon Sep 17 00:00:00 2001 From: Leonid Startsev Date: Tue, 30 Oct 2018 15:50:24 +0300 Subject: [PATCH] Fix instantiation of generic serializers on JS (Kotlin/kotlinx.serialization/244, which was fixed already by lookuping descriptor, but still had a bug) --- .../serialization/compiler/backend/js/JsCodegenUtil.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt index 7345208d2d4..60397889bf3 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt @@ -160,7 +160,10 @@ internal fun SerializerJsTranslator.serializerInstance( val desc = requireNotNull( KSerializerDescriptorResolver.findSerializerConstructorForTypeArgumentsSerializers(serializerClass) ) { "Generated serializer does not have constructor with required number of arguments" } - JsInvocation(context.getInnerReference(desc), args) + if (!desc.isPrimary) + JsInvocation(context.getInnerReference(desc), args) + else + JsNew(context.getInnerReference(desc), args) } else { JsNew(context.translateQualifiedReference(serializerClass), args) }