Skip to content

Commit

Permalink
Revert 2 dev (#3)
Browse files Browse the repository at this point in the history
* Revert "Adapt tests for K2 and upcoming deprecations in K1 (Kotlin#2230)"

This reverts commit f9229ef.

* Revert "Fix value class encoding in various corner cases (Kotlin#2242)"

This reverts commit 3cec2f7.

* Revert "Improved docs for JsonContentPolymorphicSerializer (Kotlin#2189)"

This reverts commit 3555872.

* Revert "Fix incorrect json decoding iterator's .hasNext() behavior on array-wrapped inputs: (Kotlin#2268)"

This reverts commit 2864aea.

* Revert "Fix memory leak caused by invalid KTypeWrapper's equals method (Kotlin#2274)"

This reverts commit 836f2bd.

* Revert "Replace deprecated ThreadLocal with kotlin.native.concurrent.ThreadLocal (Kotlin#2266)"

This reverts commit d73f6e3.

* Revert "Get rid of deprecated toChar() in JS-specific code (Kotlin#2252)"

This reverts commit 3686362.

* Revert "Rename json-okio `target` variables to `sink` (Kotlin#2226)"

This reverts commit a978cf0.

* Revert "Replace `runCatching-map-getOrDefault` in caching (Kotlin#2248)"

This reverts commit da91066.

* Revert "Configure project settings for Intellij IDEA (Kotlin#2217)"

This reverts commit d519d45.

* Revert "Updated K/N targets in accordance with official recommendations (Kotlin#2216)"

This reverts commit fe63ced.
  • Loading branch information
xBaank committed Apr 20, 2023
1 parent f9229ef commit abcced6
Show file tree
Hide file tree
Showing 30 changed files with 82 additions and 317 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
# IntelliJ files
**/.idea/*
!/.idea/vcs.xml
!/.idea/codeStyles
!/.idea/copyright
out/
*.iml

Expand Down
15 changes: 0 additions & 15 deletions .idea/codeStyles/Project.xml

This file was deleted.

5 changes: 0 additions & 5 deletions .idea/codeStyles/codeStyleConfig.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/copyright/kotlinx_serialization.xml

This file was deleted.

3 changes: 0 additions & 3 deletions .idea/copyright/profiles_settings.xml

This file was deleted.

7 changes: 2 additions & 5 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions core/api/kotlinx-serialization-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -1067,7 +1067,7 @@ public abstract class kotlinx/serialization/internal/TaggedDecoder : kotlinx/ser
public final fun decodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;)I
public final fun decodeFloat ()F
public final fun decodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)F
public fun decodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Decoder;
public final fun decodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Decoder;
public final fun decodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Decoder;
public final fun decodeInt ()I
public final fun decodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)I
Expand Down Expand Up @@ -1123,7 +1123,7 @@ public abstract class kotlinx/serialization/internal/TaggedEncoder : kotlinx/ser
public final fun encodeEnum (Lkotlinx/serialization/descriptors/SerialDescriptor;I)V
public final fun encodeFloat (F)V
public final fun encodeFloatElement (Lkotlinx/serialization/descriptors/SerialDescriptor;IF)V
public fun encodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Encoder;
public final fun encodeInline (Lkotlinx/serialization/descriptors/SerialDescriptor;)Lkotlinx/serialization/encoding/Encoder;
public final fun encodeInlineElement (Lkotlinx/serialization/descriptors/SerialDescriptor;I)Lkotlinx/serialization/encoding/Encoder;
public final fun encodeInt (I)V
public final fun encodeIntElement (Lkotlinx/serialization/descriptors/SerialDescriptor;II)V
Expand Down
4 changes: 2 additions & 2 deletions core/commonMain/src/kotlinx/serialization/internal/Tagged.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public abstract class TaggedEncoder<Tag : Any?> : Encoder, CompositeEncoder {
protected open fun encodeTaggedInline(tag: Tag, inlineDescriptor: SerialDescriptor): Encoder =
this.apply { pushTag(tag) }

override fun encodeInline(descriptor: SerialDescriptor): Encoder =
final override fun encodeInline(descriptor: SerialDescriptor): Encoder =
encodeTaggedInline(popTag(), descriptor)

// ---- Implementation of low-level API ----
Expand Down Expand Up @@ -209,7 +209,7 @@ public abstract class TaggedDecoder<Tag : Any?> : Decoder, CompositeDecoder {

// ---- Implementation of low-level API ----

override fun decodeInline(descriptor: SerialDescriptor): Decoder =
final override fun decodeInline(descriptor: SerialDescriptor): Decoder =
decodeTaggedInline(popTag(), descriptor)

// TODO this method should be overridden by any sane format that supports top-level nulls
Expand Down
21 changes: 10 additions & 11 deletions core/commonTest/src/kotlinx/serialization/MetaSerializableTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,18 @@ import kotlinx.serialization.test.*
import kotlin.reflect.KClass
import kotlin.test.*

@MetaSerializable
@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY)
annotation class MySerializable

@MetaSerializable
@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY)
annotation class MySerializableWithInfo(
val value: Int,
val kclass: KClass<*>
)
class MetaSerializableTest {

@MetaSerializable
@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY)
annotation class MySerializable

class MetaSerializableTest {
@MetaSerializable
@Target(AnnotationTarget.CLASS, AnnotationTarget.PROPERTY)
annotation class MySerializableWithInfo(
val value: Int,
val kclass: KClass<*>
)

@MySerializable
class Project1(val name: String, val language: String)
Expand Down
14 changes: 5 additions & 9 deletions core/commonTest/src/kotlinx/serialization/features/SchemaTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ package kotlinx.serialization.features
import kotlinx.serialization.*
import kotlinx.serialization.builtins.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
import kotlinx.serialization.internal.*
import kotlinx.serialization.test.EnumSerializer
import kotlin.test.*
Expand All @@ -20,17 +18,15 @@ class SchemaTest {
@Serializable
data class Box<T>(val boxed: T)

@Serializable(Data1.Companion::class)
@Serializable
data class Data1(val l: List<Int> = emptyList(), val s: String) {
companion object: KSerializer<Data1> {
override val descriptor = buildClassSerialDescriptor("Data1") {
@Serializer(forClass = Data1::class)
companion object {
// TODO removal of explicit type crashes the compiler
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("Data1") {
element("l", listSerialDescriptor<Int>(), isOptional = true)
element("s", serialDescriptor<String>())
}

override fun serialize(encoder: Encoder, value: Data1) = error("Should not be called")

override fun deserialize(decoder: Decoder): Data1 = error("Should not be called")
}
}

Expand Down
9 changes: 3 additions & 6 deletions core/jvmMain/src/kotlinx/serialization/internal/Caching.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,9 @@ import kotlin.reflect.KTypeProjection
* but ClassValue is not available on Android, thus we attempt to check it dynamically
* and fallback to ConcurrentHashMap-based cache.
*/
private val useClassValue = try {
private val useClassValue = runCatching {
Class.forName("java.lang.ClassValue")
true
} catch (_: Throwable) {
false
}
}.map { true }.getOrDefault(false)

/**
* Creates a **strongly referenced** cache of values associated with [Class].
Expand Down Expand Up @@ -170,7 +167,7 @@ private class KTypeWrapper(private val origin: KType) : KType {

override fun equals(other: Any?): Boolean {
if (other == null) return false
if (origin != (other as? KTypeWrapper)?.origin) return false
if (origin != other) return false

val kClassifier = classifier
if (kClassifier is KClass<*>) {
Expand Down
46 changes: 0 additions & 46 deletions core/jvmTest/src/kotlinx/serialization/CachingTest.kt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import kotlinx.serialization.json.okio.internal.OkioSerialReader
import okio.*

/**
* Serializes the [value] with [serializer] into a [sink] using JSON format and UTF-8 encoding.
* Serializes the [value] with [serializer] into a [target] using JSON format and UTF-8 encoding.
*
* @throws [SerializationException] if the given value cannot be serialized to JSON.
* @throws [okio.IOException] If an I/O error occurs and sink can't be written to.
Expand All @@ -25,9 +25,9 @@ import okio.*
public fun <T> Json.encodeToBufferedSink(
serializer: SerializationStrategy<T>,
value: T,
sink: BufferedSink
target: BufferedSink
) {
val writer = JsonToOkioStreamWriter(sink)
val writer = JsonToOkioStreamWriter(target)
try {
encodeByWriter(writer, serializer, value)
} finally {
Expand All @@ -36,16 +36,16 @@ public fun <T> Json.encodeToBufferedSink(
}

/**
* Serializes given [value] to a [sink] using UTF-8 encoding and serializer retrieved from the reified type parameter.
* Serializes given [value] to a [target] using UTF-8 encoding and serializer retrieved from the reified type parameter.
*
* @throws [SerializationException] if the given value cannot be serialized to JSON.
* @throws [okio.IOException] If an I/O error occurs and sink can't be written to.
*/
@ExperimentalSerializationApi
public inline fun <reified T> Json.encodeToBufferedSink(
value: T,
sink: BufferedSink
): Unit = encodeToBufferedSink(serializersModule.serializer(), value, sink)
target: BufferedSink
): Unit = encodeToBufferedSink(serializersModule.serializer(), value, target)


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,34 +11,34 @@ import kotlinx.serialization.json.internal.JsonWriter
import kotlinx.serialization.json.internal.SerialReader
import okio.*

internal class JsonToOkioStreamWriter(private val sink: BufferedSink) : JsonWriter {
internal class JsonToOkioStreamWriter(private val target: BufferedSink) : JsonWriter {
override fun writeLong(value: Long) {
write(value.toString())
}

override fun writeChar(char: Char) {
sink.writeUtf8CodePoint(char.code)
target.writeUtf8CodePoint(char.code)
}

override fun write(text: String) {
sink.writeUtf8(text)
target.writeUtf8(text)
}

override fun writeQuoted(text: String) {
sink.writeUtf8CodePoint('"'.code)
target.writeUtf8CodePoint('"'.code)
var lastPos = 0
for (i in text.indices) {
val c = text[i].code
if (c < ESCAPE_STRINGS.size && ESCAPE_STRINGS[c] != null) {
sink.writeUtf8(text, lastPos, i) // flush prev
sink.writeUtf8(ESCAPE_STRINGS[c]!!)
target.writeUtf8(text, lastPos, i) // flush prev
target.writeUtf8(ESCAPE_STRINGS[c]!!)
lastPos = i + 1
}
}

if (lastPos != 0) sink.writeUtf8(text, lastPos, text.length)
else sink.writeUtf8(text)
sink.writeUtf8CodePoint('"'.code)
if (lastPos != 0) target.writeUtf8(text, lastPos, text.length)
else target.writeUtf8(text)
target.writeUtf8CodePoint('"'.code)
}

override fun release() {
Expand Down
2 changes: 0 additions & 2 deletions formats/json-tests/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ apply(from = rootProject.file("gradle/configure-source-sets.gradle"))
tasks.withType<Kotlin2JsCompile> {
if (this.name == "compileTestKotlinJsLegacy") {
this.exclude("**/PropertyInitializerTest.kt")
// Partially custom serializers without 'implicit customisation by companion' annotation are not supported on Legacy JS
this.exclude("**/PartiallyCustomSerializerTest.kt", "**/JsonCustomSerializersTest.kt")
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@ import kotlinx.serialization.*
import kotlinx.serialization.json.*
import kotlin.test.*

@MetaSerializable
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.CLASS)
annotation class JsonComment(val comment: String)

@JsonComment("class_comment")
data class IntDataCommented(val i: Int)

class MetaSerializableJsonTest : JsonTestBase() {
@MetaSerializable
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.CLASS)
annotation class JsonComment(val comment: String)

@JsonComment("class_comment")
data class IntDataCommented(val i: Int)

@Serializable
data class Carrier(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import kotlinx.serialization.json.Json
import kotlin.test.Test
import kotlin.test.assertEquals

@Serializable(WithNull.Companion::class)
@Serializable
data class WithNull(@SerialName("value") val nullable: String? = null) {
@Serializer(forClass = WithNull::class)
companion object : KSerializer<WithNull> {
Expand Down
Loading

0 comments on commit abcced6

Please sign in to comment.