Make visibilities of writeSelf and deserialization constructor in FIR
same as they were in K1 (see KSerializerDescriptorResolver): internal for final classes and public for non-final. Unfortunately, there are no Klib API dumps tests in the compiler, so I tested manually. #KT-64124 Fixed
This commit is contained in:
committed by
Space Team
parent
9933423a0b
commit
a03fd2e29a
+2
-2
@@ -56,7 +56,7 @@ class IrPreGenerator(
|
||||
val method = irClass.addFunction {
|
||||
name = SerialEntityNames.WRITE_SELF_NAME
|
||||
returnType = compilerContext.irBuiltIns.unitType
|
||||
visibility = DescriptorVisibilities.PUBLIC
|
||||
visibility = if (irClass.modality == Modality.FINAL) DescriptorVisibilities.INTERNAL else DescriptorVisibilities.PUBLIC
|
||||
modality = Modality.FINAL
|
||||
origin = SERIALIZATION_PLUGIN_ORIGIN
|
||||
}
|
||||
@@ -118,7 +118,7 @@ class IrPreGenerator(
|
||||
if (irClass.findSerializableSyntheticConstructor() != null) return
|
||||
val ctor = irClass.addConstructor {
|
||||
origin = SERIALIZATION_PLUGIN_ORIGIN
|
||||
visibility = DescriptorVisibilities.PUBLIC
|
||||
visibility = if (irClass.modality == Modality.FINAL) DescriptorVisibilities.INTERNAL else DescriptorVisibilities.PUBLIC
|
||||
}.apply { excludeFromJsExport() }
|
||||
val markerClassSymbol =
|
||||
compilerContext.getClassFromInternalSerializationPackage(SerialEntityNames.SERIAL_CTOR_MARKER_NAME.asString())
|
||||
|
||||
Reference in New Issue
Block a user