From 365a183d01534c9dd6246a2b35f6425e8744a16c Mon Sep 17 00:00:00 2001 From: Paul de Vrieze Date: Fri, 25 May 2018 13:34:37 +0100 Subject: [PATCH] Fix for Kotlin/kotlinx.serialization/136 Create a version that actually passes a type parameter in write$Self. This version should take the correct type parameters from the class rather than adding a function type parameter shared with all serializers. --- .../compiler/resolve/KSerializerDescriptorResolver.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt index 47a505850f2..60cd5855c7b 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt @@ -394,9 +394,13 @@ object KSerializerDescriptorResolver { f.source) ) - val kSerialClass = thisClass.getClassFromSerializationPackage("KSerializer").toSimpleType(false) + val kSerialClassDesc = thisClass.getClassFromSerializationPackage("KSerializer") thisClass.declaredTypeParameters.forEach { + val typeArgument = TypeProjectionImpl(it.defaultType) + val kSerialClass = KotlinTypeFactory.simpleNotNullType(Annotations.EMPTY, kSerialClassDesc, listOf(typeArgument)) + + args.add(ValueParameterDescriptorImpl( f, null,