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:
committed by
Space Team
parent
a69ac69de1
commit
af4308e634
+4
-1
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user