diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt index 9974a68d8ab..d5a6fa5dc88 100644 --- a/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt @@ -11,10 +11,8 @@ import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.containingClassForStaticMemberAttr import org.jetbrains.kotlin.fir.copy -import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin -import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunctionCopy -import org.jetbrains.kotlin.fir.declarations.origin import org.jetbrains.kotlin.fir.declarations.utils.isCompanion import org.jetbrains.kotlin.fir.extensions.* import org.jetbrains.kotlin.fir.plugin.* @@ -278,6 +276,8 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene val hasTypeParams = owner.typeParameterSymbols.isNotEmpty() val serializerKind = if (hasTypeParams) ClassKind.CLASS else ClassKind.OBJECT val serializerFirClass = createNestedClass(owner, SerialEntityNames.SERIALIZER_CLASS_NAME, SerializationPluginKey, serializerKind) { + modality = Modality.FINAL + for (parameter in owner.typeParameterSymbols) { typeParameter(parameter.name) } @@ -292,11 +292,10 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene isNullable = false ) } + }.apply { + excludeFromJsExport() + markAsDeprecatedHidden() } - // TODO: add deprecate hidden - // serializerFirClass.replaceAnnotations(listOf(Annotations.create(listOf(KSerializerDescriptorResolver.createDeprecatedHiddenAnnotation(thisDescriptor.module))))) - serializerFirClass.excludeFromJsExport() - return serializerFirClass.symbol } diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt index 160585baea6..ff5f9c7da4e 100644 --- a/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt @@ -8,8 +8,9 @@ package org.jetbrains.kotlinx.serialization.compiler.fir import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.deserialization.toQualifiedPropertyAccessExpression import org.jetbrains.kotlin.fir.expressions.* -import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotationCall +import org.jetbrains.kotlin.fir.expressions.builder.* import org.jetbrains.kotlin.fir.extensions.FirExtension import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider import org.jetbrains.kotlin.fir.moduleData @@ -27,9 +28,11 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.platform.isJs import org.jetbrains.kotlin.platform.isWasm import org.jetbrains.kotlin.platform.konan.isNative +import org.jetbrains.kotlin.types.ConstantValueKind import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.kotlinx.serialization.compiler.fir.services.dependencySerializationInfoProvider import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames @@ -280,3 +283,32 @@ fun FirDeclaration.excludeFromJsExport() { replaceAnnotations(annotations + jsExportIgnoreAnnotationCall) } + +context(FirExtension) +fun createDeprecatedHiddenAnnotation(): FirAnnotation = buildAnnotation { + val deprecatedAnno = + session.symbolProvider.getClassLikeSymbolByClassId(StandardClassIds.Annotations.Deprecated) as FirRegularClassSymbol + + annotationTypeRef = deprecatedAnno.defaultType().toFirResolvedTypeRef() + + argumentMapping = buildAnnotationArgumentMapping { + mapping[Name.identifier("message")] = buildLiteralExpression( + null, + ConstantValueKind.String, + "This synthesized declaration should not be used directly", + setType = true + ) + + // It has nothing to do with enums deserialization, but it is simply easier to build it this way. + mapping[Name.identifier("level")] = buildEnumEntryDeserializedAccessExpression { + enumClassId = StandardClassIds.DeprecationLevel + enumEntryName = Name.identifier("HIDDEN") + }.toQualifiedPropertyAccessExpression(session) + } +} + +context(FirExtension) +fun FirClassLikeDeclaration.markAsDeprecatedHidden() { + replaceAnnotations(annotations + listOf(createDeprecatedHiddenAnnotation())) + replaceDeprecationsProvider(this.getDeprecationsProvider(session)) +} diff --git a/plugins/kotlinx-serialization/testData/diagnostics/GeneratedSerializerInaccessible.kt b/plugins/kotlinx-serialization/testData/diagnostics/GeneratedSerializerInaccessible.kt new file mode 100644 index 00000000000..861a1af2eb0 --- /dev/null +++ b/plugins/kotlinx-serialization/testData/diagnostics/GeneratedSerializerInaccessible.kt @@ -0,0 +1,14 @@ +// FIR_IDENTICAL +// WITH_STDLIB +// SKIP_TXT + +import kotlinx.serialization.* + +@Serializable +class A + +fun foo() { + A.`$serializer` + A.`$serializer`.descriptor + A(0, null) +} diff --git a/plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.fir.txt index f4187d35825..5149ef69dd7 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.fir.txt @@ -70,7 +70,7 @@ FILE: abstractAndSealed.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Bottom|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Bottom| diff --git a/plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.fir.txt index b8db4e3bbef..75c7e3c709a 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.fir.txt @@ -16,7 +16,7 @@ FILE: classWithCompanionObject.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|SomeClass|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|SomeClass| diff --git a/plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.fir.txt index e12ab6d84c8..34387564d23 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.fir.txt @@ -22,7 +22,7 @@ FILE: classWithGenericParameters.kt } - public final class $serializer : R|kotlinx/serialization/internal/GeneratedSerializer>| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final class $serializer : R|kotlinx/serialization/internal/GeneratedSerializer>| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|GenericBox|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|GenericBox| diff --git a/plugins/kotlinx-serialization/testData/firMembers/defaultProperties.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/defaultProperties.fir.txt index ed3e58e09f2..31a8faf7705 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/defaultProperties.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/defaultProperties.fir.txt @@ -33,7 +33,7 @@ FILE: defaultProperties.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|SomeClass|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|SomeClass| diff --git a/plugins/kotlinx-serialization/testData/firMembers/enums.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/enums.fir.txt index 24af2c7db24..99cdccec3eb 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/enums.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/enums.fir.txt @@ -74,7 +74,7 @@ FILE: enums.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Holder|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Holder| diff --git a/plugins/kotlinx-serialization/testData/firMembers/inlineClasses.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/inlineClasses.fir.txt index 4775842db2f..5fb76f68744 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/inlineClasses.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/inlineClasses.fir.txt @@ -16,7 +16,7 @@ FILE: inlineClasses.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Foo|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Foo| @@ -50,7 +50,7 @@ FILE: inlineClasses.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Holder|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Holder| diff --git a/plugins/kotlinx-serialization/testData/firMembers/metaSerializable.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/metaSerializable.fir.txt index a2b783a7a9a..1a953dd2ff9 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/metaSerializable.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/metaSerializable.fir.txt @@ -37,7 +37,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Project1|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Project1| @@ -74,7 +74,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Project2|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Project2| @@ -108,7 +108,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Wrapper|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Wrapper| @@ -145,7 +145,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Project3|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Project3| @@ -205,7 +205,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|TestSealed.A|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestSealed.A| @@ -240,7 +240,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|TestSealed.B|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestSealed.B| @@ -290,7 +290,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|TestAbstract.A|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestAbstract.A| @@ -325,7 +325,7 @@ FILE: metaSerializable.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|TestAbstract.B|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|TestAbstract.B| diff --git a/plugins/kotlinx-serialization/testData/firMembers/multipleProperties.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/multipleProperties.fir.txt index e0a6334cd87..2b1cfd9f778 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/multipleProperties.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/multipleProperties.fir.txt @@ -25,7 +25,7 @@ FILE: multipleProperties.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|SomeClass|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|SomeClass| diff --git a/plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.fir.txt index 4f1be0f5a59..e6e6c81772a 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.fir.txt @@ -36,7 +36,7 @@ FILE: privatePropertiesSerialization.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Parent|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Parent| @@ -67,7 +67,7 @@ FILE: privatePropertiesSerialization.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|Derived|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|Derived| diff --git a/plugins/kotlinx-serialization/testData/firMembers/serializableWithCompanion.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/serializableWithCompanion.fir.txt index d50e12f6708..9c2cfb0af39 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/serializableWithCompanion.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/serializableWithCompanion.fir.txt @@ -43,7 +43,7 @@ FILE: serializableWithCompanion.kt public final fun copy(i: R|kotlin/Int| = this@R|com/example/WithCompanion|.R|com/example/WithCompanion.i|): R|com/example/WithCompanion| - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|com/example/WithCompanion|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|com/example/WithCompanion| @@ -85,7 +85,7 @@ FILE: serializableWithCompanion.kt public final fun copy(i: R|kotlin/Int| = this@R|com/example/WithNamedCompanion|.R|com/example/WithNamedCompanion.i|): R|com/example/WithNamedCompanion| - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|com/example/WithNamedCompanion|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|com/example/WithNamedCompanion| diff --git a/plugins/kotlinx-serialization/testData/firMembers/serializerInLocalClass.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/serializerInLocalClass.fir.txt index 0a714e48ef2..876157d6961 100644 --- a/plugins/kotlinx-serialization/testData/firMembers/serializerInLocalClass.fir.txt +++ b/plugins/kotlinx-serialization/testData/firMembers/serializerInLocalClass.fir.txt @@ -21,7 +21,7 @@ FILE: serializerInLocalClass.kt } - public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer</Carrier>| { + @R|kotlin/Deprecated|(message = String(This synthesized declaration should not be used directly), level = Q|kotlin/DeprecationLevel|.R|kotlin/DeprecationLevel.HIDDEN|) public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer</Carrier>| { public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|/Carrier|): R|kotlin/Unit| public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|/Carrier| diff --git a/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationFirPsiDiagnosticTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationFirPsiDiagnosticTestGenerated.java index c8b47dc9d27..b55333c7fd5 100644 --- a/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationFirPsiDiagnosticTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationFirPsiDiagnosticTestGenerated.java @@ -68,6 +68,12 @@ public class SerializationFirPsiDiagnosticTestGenerated extends AbstractSerializ runTest("plugins/kotlinx-serialization/testData/diagnostics/ExternalSerializers.kt"); } + @Test + @TestMetadata("GeneratedSerializerInaccessible.kt") + public void testGeneratedSerializerInaccessible() { + runTest("plugins/kotlinx-serialization/testData/diagnostics/GeneratedSerializerInaccessible.kt"); + } + @Test @TestMetadata("GenericArrays.kt") public void testGenericArrays() { diff --git a/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationPluginDiagnosticTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationPluginDiagnosticTestGenerated.java index 90a647dabba..208a85601ff 100644 --- a/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationPluginDiagnosticTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/runners/SerializationPluginDiagnosticTestGenerated.java @@ -65,6 +65,12 @@ public class SerializationPluginDiagnosticTestGenerated extends AbstractSerializ runTest("plugins/kotlinx-serialization/testData/diagnostics/ExternalSerializers.kt"); } + @Test + @TestMetadata("GeneratedSerializerInaccessible.kt") + public void testGeneratedSerializerInaccessible() { + runTest("plugins/kotlinx-serialization/testData/diagnostics/GeneratedSerializerInaccessible.kt"); + } + @Test @TestMetadata("GenericArrays.kt") public void testGenericArrays() {