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)
|
else -> SerializerIrGenerator(irClass, context, metadataPlugin)
|
||||||
}
|
}
|
||||||
generator.generate()
|
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.addDefaultConstructorIfAbsent(context)
|
||||||
irClass.patchDeclarationParents(irClass.parent)
|
irClass.patchDeclarationParents(irClass.parent)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user