Add @Deprecated annotation to a synthetic $serializer class

in K2 so it matches K1 behavior.

Deprecation is required, so the declaration will not be visible to user in completion in the IDE.

#KT-65757 Fixed
This commit is contained in:
Leonid Startsev
2024-03-13 16:03:38 +01:00
committed by Space Team
parent 0df3a37303
commit dbb7ab1760
16 changed files with 86 additions and 29 deletions
@@ -0,0 +1,14 @@
// FIR_IDENTICAL
// WITH_STDLIB
// SKIP_TXT
import kotlinx.serialization.*
@Serializable
class A
fun foo() {
A.<!DEPRECATION_ERROR!>`$serializer`<!>
A.<!DEPRECATION_ERROR!>`$serializer`<!>.descriptor
A(<!TOO_MANY_ARGUMENTS!>0<!>, <!TOO_MANY_ARGUMENTS!>null<!>)
}
@@ -70,7 +70,7 @@ FILE: abstractAndSealed.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Bottom>| {
@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<Bottom>| {
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|
@@ -16,7 +16,7 @@ FILE: classWithCompanionObject.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<SomeClass>| {
@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<SomeClass>| {
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|
@@ -22,7 +22,7 @@ FILE: classWithGenericParameters.kt
}
public final class $serializer<T, V> : R|kotlinx/serialization/internal/GeneratedSerializer<GenericBox<T, V>>| {
@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<T, V> : R|kotlinx/serialization/internal/GeneratedSerializer<GenericBox<T, V>>| {
public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|GenericBox<T, V>|): R|kotlin/Unit|
public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|GenericBox<T, V>|
@@ -33,7 +33,7 @@ FILE: defaultProperties.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<SomeClass>| {
@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<SomeClass>| {
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|
@@ -74,7 +74,7 @@ FILE: enums.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Holder>| {
@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<Holder>| {
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|
@@ -16,7 +16,7 @@ FILE: inlineClasses.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Foo>| {
@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<Foo>| {
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<Holder>| {
@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<Holder>| {
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|
@@ -37,7 +37,7 @@ FILE: metaSerializable.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Project1>| {
@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<Project1>| {
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<Project2>| {
@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<Project2>| {
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<Wrapper>| {
@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<Wrapper>| {
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<Project3>| {
@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<Project3>| {
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<TestSealed.A>| {
@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<TestSealed.A>| {
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<TestSealed.B>| {
@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<TestSealed.B>| {
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<TestAbstract.A>| {
@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<TestAbstract.A>| {
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<TestAbstract.B>| {
@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<TestAbstract.B>| {
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|
@@ -25,7 +25,7 @@ FILE: multipleProperties.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<SomeClass>| {
@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<SomeClass>| {
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|
@@ -36,7 +36,7 @@ FILE: privatePropertiesSerialization.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<Parent>| {
@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<Parent>| {
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<Derived>| {
@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<Derived>| {
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|
@@ -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<com/example/WithCompanion>| {
@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<com/example/WithCompanion>| {
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<com/example/WithNamedCompanion>| {
@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<com/example/WithNamedCompanion>| {
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|
@@ -21,7 +21,7 @@ FILE: serializerInLocalClass.kt
}
public final object $serializer : R|kotlinx/serialization/internal/GeneratedSerializer<<local>/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<<local>/Carrier>| {
public final override fun serialize(encoder: R|kotlinx/serialization/encoding/Encoder|, value: R|<local>/Carrier|): R|kotlin/Unit|
public final override fun deserialize(decoder: R|kotlinx/serialization/encoding/Decoder|): R|<local>/Carrier|