Fixed replacing serializer origin for generated classes

Do not use plugin origin for user-written classes that have @Serializer annotation for some reason. Plugin origin makes them synthetic which is incorrect because they're available in source code. Example of such class: @Serializer(JsonElement::class) class JsonElementSerializer

Merge-request: KT-MR-7627
Merged-by: Sergey Shanshin <Sergey.Shanshin@jetbrains.com>
This commit is contained in:
Sergey.Shanshin
2022-11-09 17:11:40 +00:00
committed by Space Team
parent a69ac69de1
commit af4308e634
@@ -624,7 +624,10 @@ open class SerializerIrGenerator(
else -> SerializerIrGenerator(irClass, context, metadataPlugin)
}
generator.generate()
irClass.origin = SERIALIZATION_PLUGIN_ORIGIN
if (irClass.isFromPlugin(context.afterK2)) {
// replace origin only for plugin generated serializers
irClass.origin = SERIALIZATION_PLUGIN_ORIGIN
}
irClass.addDefaultConstructorIfAbsent(context)
irClass.patchDeclarationParents(irClass.parent)
}