Skip to content

Commit 88f782c

Browse files
authored
Removed redundant usages of @serializer annotations (#2200)
If all KSerializer members are overridden in custom serializer, then the annotation '@serializer' is not needed
1 parent e9b9064 commit 88f782c

File tree

17 files changed

+25
-47
lines changed

17 files changed

+25
-47
lines changed

core/commonTest/src/kotlinx/serialization/SerializersLookupEnumTest.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ class SerializersLookupEnumTest {
1616
@Serializable(with = EnumExternalObjectSerializer::class)
1717
enum class EnumExternalObject
1818

19-
@Serializer(forClass = EnumExternalObject::class)
20-
object EnumExternalObjectSerializer {
19+
object EnumExternalObjectSerializer: KSerializer<EnumExternalObject> {
2120
override val descriptor: SerialDescriptor = buildSerialDescriptor("tmp", SerialKind.ENUM)
2221

2322
override fun serialize(encoder: Encoder, value: EnumExternalObject) {
@@ -29,11 +28,10 @@ class SerializersLookupEnumTest {
2928
}
3029
}
3130

32-
@Serializable(with = EnumExternalClassSerializer::class)
31+
@Serializable(with = EnumCustomClassSerializer::class)
3332
enum class EnumExternalClass
3433

35-
@Serializer(forClass = EnumExternalClass::class)
36-
class EnumExternalClassSerializer {
34+
class EnumCustomClassSerializer: KSerializer<EnumExternalClass> {
3735
override val descriptor: SerialDescriptor = buildSerialDescriptor("tmp", SerialKind.ENUM)
3836

3937
override fun serialize(encoder: Encoder, value: EnumExternalClass) {
@@ -97,7 +95,7 @@ class SerializersLookupEnumTest {
9795

9896
@Test
9997
fun testEnumExternalClass() {
100-
assertIs<EnumExternalClassSerializer>(EnumExternalClass.serializer())
101-
assertIs<EnumExternalClassSerializer>(serializer<EnumExternalClass>())
98+
assertIs<EnumCustomClassSerializer>(EnumExternalClass.serializer())
99+
assertIs<EnumCustomClassSerializer>(serializer<EnumExternalClass>())
102100
}
103101
}

core/commonTest/src/kotlinx/serialization/SerializersLookupObjectTest.kt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@ import kotlin.test.*
1111

1212
@Suppress("RemoveExplicitTypeArguments") // This is exactly what's being tested
1313
class SerializersLookupObjectTest {
14-
@Serializable(with = ObjectExternalObjectSerializer::class)
14+
@Serializable(with = ObjectCustomObjectSerializer::class)
1515
object ObjectExternalObject
1616

17-
@Serializer(forClass = ObjectExternalObject::class)
18-
object ObjectExternalObjectSerializer {
17+
object ObjectCustomObjectSerializer: KSerializer<ObjectExternalObject> {
1918
override val descriptor: SerialDescriptor = buildSerialDescriptor("tmp", StructureKind.OBJECT)
2019

2120
override fun serialize(encoder: Encoder, value: ObjectExternalObject) {
@@ -27,11 +26,10 @@ class SerializersLookupObjectTest {
2726
}
2827
}
2928

30-
@Serializable(with = ObjectExternalClassSerializer::class)
29+
@Serializable(with = ObjectCustomClassSerializer::class)
3130
object ObjectExternalClass
3231

33-
@Serializer(forClass = ObjectExternalClass::class)
34-
class ObjectExternalClassSerializer {
32+
class ObjectCustomClassSerializer: KSerializer<ObjectExternalClass> {
3533
override val descriptor: SerialDescriptor = buildSerialDescriptor("tmp", StructureKind.OBJECT)
3634

3735
override fun serialize(encoder: Encoder, value: ObjectExternalClass) {
@@ -56,18 +54,18 @@ class SerializersLookupObjectTest {
5654

5755
@Test
5856
fun testObjectExternalObject() {
59-
assertSame(ObjectExternalObjectSerializer, ObjectExternalObject.serializer())
57+
assertSame(ObjectCustomObjectSerializer, ObjectExternalObject.serializer())
6058
if (!isJsLegacy()) {
61-
assertSame(ObjectExternalObjectSerializer, serializer<ObjectExternalObject>())
59+
assertSame(ObjectCustomObjectSerializer, serializer<ObjectExternalObject>())
6260
}
6361
}
6462

6563
@Test
6664
fun testObjectExternalClass() {
67-
assertIs<ObjectExternalClassSerializer>(ObjectExternalClass.serializer())
65+
assertIs<ObjectCustomClassSerializer>(ObjectExternalClass.serializer())
6866

6967
if (!isJsLegacy()) {
70-
assertIs<ObjectExternalClassSerializer>(serializer<ObjectExternalClass>())
68+
assertIs<ObjectCustomClassSerializer>(serializer<ObjectExternalClass>())
7169
}
7270
}
7371
}

formats/json-tests/commonTest/src/kotlinx/serialization/EncodingExtensionsTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ class EncodingExtensionsTest {
1010
@Serializable(with = BoxSerializer::class)
1111
class Box(val i: Int)
1212

13-
@Serializer(forClass = Box::class)
1413
object BoxSerializer : KSerializer<Box> {
1514
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("Box") {
1615
element<Int>("i")

formats/json-tests/commonTest/src/kotlinx/serialization/EnumSerializationTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ class EnumSerializationTest : JsonTestBase() {
4545
TWO
4646
}
4747

48-
@Serializer(WithCustom::class)
4948
private class CustomEnumSerializer : KSerializer<WithCustom> {
5049
override val descriptor: SerialDescriptor = buildSerialDescriptor("WithCustom", SerialKind.ENUM) {
5150
element("1", buildSerialDescriptor("WithCustom.1", StructureKind.OBJECT))

formats/json-tests/commonTest/src/kotlinx/serialization/NotNullSerializersCompatibilityOnFileTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ class NotNullSerializersCompatibilityOnFileTest {
5353
@Serializable
5454
data class Holder(val nullable: Int?, val nonNullable: Int)
5555

56-
@Serializer(forClass = Int::class)
5756
object NonNullableIntSerializer : KSerializer<Int> {
5857
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("NotNullIntSerializer", PrimitiveKind.INT)
5958

formats/json-tests/commonTest/src/kotlinx/serialization/SerializationForNullableTypeOnFileTest.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ class SerializationForNullableTypeOnFileTest {
1616
@Serializable
1717
data class Holder(val nullable: Int?, val nonNullable: Int)
1818

19-
@Serializer(forClass = Int::class)
2019
object NullableIntSerializer : KSerializer<Int?> {
2120
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("NullableIntSerializer", PrimitiveKind.INT).nullable
2221

@@ -34,7 +33,6 @@ class SerializationForNullableTypeOnFileTest {
3433
}
3534
}
3635

37-
@Serializer(forClass = Int::class)
3836
object NonNullableIntSerializer : KSerializer<Int> {
3937
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("NotNullIntSerializer", PrimitiveKind.INT)
4038

formats/json-tests/commonTest/src/kotlinx/serialization/SerializerForNullableTypeTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public class SerializerForNullableTypeTest : JsonTestBase() {
1616
@Serializable(with = StringHolderSerializer::class)
1717
data class StringHolder(val s: String)
1818

19-
@Serializer(forClass = StringHolder::class)
2019
object StringHolderSerializer : KSerializer<StringHolder?> {
2120
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("SHS", PrimitiveKind.STRING).nullable
2221

formats/json-tests/commonTest/src/kotlinx/serialization/features/BinaryPayloadExampleTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ import kotlin.test.Test
1414
import kotlin.test.assertEquals
1515

1616
class BinaryPayloadExampleTest {
17-
@Serializable
17+
@Serializable(BinaryPayload.Companion::class)
1818
class BinaryPayload(val req: ByteArray, val res: ByteArray) {
19-
@Serializer(forClass = BinaryPayload::class)
2019
companion object : KSerializer<BinaryPayload> {
2120
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("BinaryPayload") {
2221
element("req", ByteArraySerializer().descriptor)
@@ -73,6 +72,7 @@ class BinaryPayloadExampleTest {
7372
fun payloadEquivalence() {
7473
val payload1 = BinaryPayload(byteArrayOf(0, 0, 0), byteArrayOf(127, 127))
7574
val s = Json.encodeToString(BinaryPayload.serializer(), payload1)
75+
assertEquals("""{"req":"000000","res":"7F7F"}""", s)
7676
val payload2 = Json.decodeFromString(BinaryPayload.serializer(), s)
7777
assertEquals(payload1, payload2)
7878
}

formats/json-tests/commonTest/src/kotlinx/serialization/features/GenericCustomSerializerTest.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ class CheckedData<T : Any>(val data: T, val checkSum: ByteArray) {
3333
}
3434
}
3535

36-
@Serializer(forClass = CheckedData::class)
3736
class CheckedDataSerializer<T : Any>(private val dataSerializer: KSerializer<T>) : KSerializer<CheckedData<T>> {
3837
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("CheckedDataSerializer") {
3938
val dataDescriptor = dataSerializer.descriptor

formats/json-tests/commonTest/src/kotlinx/serialization/features/inline/InlineClassesTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ data class SimpleContainerForUInt(val i: UInt)
2222
@JvmInline
2323
value class MyUInt(val m: Int)
2424

25-
@Serializer(forClass = MyUInt::class)
26-
object MyUIntSerializer {
25+
object MyUIntSerializer: KSerializer<MyUInt> {
2726
override val descriptor = UInt.serializer().descriptor
2827
override fun serialize(encoder: Encoder, value: MyUInt) {
2928
encoder.encodeInline(descriptor).encodeInt(value.m)

0 commit comments

Comments
 (0)