Skip to content

Commit 605a35f

Browse files
authored
Get rid of @ExperimentalUnsignedTypes on our declarations that levera… (#1962)
* Get rid of @ExperimentalUnsignedTypes on our declarations that leverage non-experimental unsigned types
1 parent 3e8331c commit 605a35f

File tree

13 files changed

+5
-30
lines changed

13 files changed

+5
-30
lines changed

build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ buildscript {
2020
ext.experimentalsInTestEnabled = ["-progressive", "-opt-in=kotlin.Experimental",
2121
"-opt-in=kotlin.ExperimentalMultiplatform",
2222
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
23-
"-opt-in=kotlinx.serialization.InternalSerializationApi",
24-
"-opt-in=kotlin.ExperimentalUnsignedTypes"
23+
"-opt-in=kotlinx.serialization.InternalSerializationApi"
2524
]
2625
ext.koverEnabled = property('kover.enabled') ?: true
2726

core/commonMain/src/kotlinx/serialization/builtins/BuiltinSerializers.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,25 +194,21 @@ public fun <K, V> MapSerializer(
194194
/**
195195
* Returns serializer for [UInt].
196196
*/
197-
@ExperimentalUnsignedTypes
198197
public fun UInt.Companion.serializer(): KSerializer<UInt> = UIntSerializer
199198

200199
/**
201200
* Returns serializer for [ULong].
202201
*/
203-
@ExperimentalUnsignedTypes
204202
public fun ULong.Companion.serializer(): KSerializer<ULong> = ULongSerializer
205203

206204
/**
207205
* Returns serializer for [UByte].
208206
*/
209-
@ExperimentalUnsignedTypes
210207
public fun UByte.Companion.serializer(): KSerializer<UByte> = UByteSerializer
211208

212209
/**
213210
* Returns serializer for [UShort].
214211
*/
215-
@ExperimentalUnsignedTypes
216212
public fun UShort.Companion.serializer(): KSerializer<UShort> = UShortSerializer
217213

218214
/**

core/commonMain/src/kotlinx/serialization/internal/ValueClasses.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import kotlinx.serialization.descriptors.*
1010
import kotlinx.serialization.encoding.*
1111

1212
@PublishedApi
13-
@ExperimentalUnsignedTypes
1413
internal object UIntSerializer : KSerializer<UInt> {
1514
override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.UInt", Int.serializer())
1615

@@ -24,7 +23,6 @@ internal object UIntSerializer : KSerializer<UInt> {
2423
}
2524

2625
@PublishedApi
27-
@ExperimentalUnsignedTypes
2826
internal object ULongSerializer : KSerializer<ULong> {
2927
override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.ULong", Long.serializer())
3028

@@ -38,7 +36,6 @@ internal object ULongSerializer : KSerializer<ULong> {
3836
}
3937

4038
@PublishedApi
41-
@ExperimentalUnsignedTypes
4239
internal object UByteSerializer : KSerializer<UByte> {
4340
override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.UByte", Byte.serializer())
4441

@@ -52,7 +49,6 @@ internal object UByteSerializer : KSerializer<UByte> {
5249
}
5350

5451
@PublishedApi
55-
@ExperimentalUnsignedTypes
5652
internal object UShortSerializer : KSerializer<UShort> {
5753
override val descriptor: SerialDescriptor = InlinePrimitiveDescriptor("kotlin.UShort", Short.serializer())
5854

docs/builtin-classes.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ Their natural representation in JSON is used.
6868

6969
<!--- TEST -->
7070

71-
> Experimental unsigned numbers as well as other experimental inline classes are not supported by Kotlin Serialization yet.
72-
7371

7472
### Long numbers
7573

formats/json/commonMain/src/kotlinx/serialization/json/JsonElementSerializers.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private object JsonLiteralSerializer : KSerializer<JsonLiteral> {
109109
override val descriptor: SerialDescriptor =
110110
PrimitiveSerialDescriptor("kotlinx.serialization.json.JsonLiteral", PrimitiveKind.STRING)
111111

112-
@OptIn(ExperimentalUnsignedTypes::class, ExperimentalSerializationApi::class)
112+
@OptIn(ExperimentalSerializationApi::class)
113113
override fun serialize(encoder: Encoder, value: JsonLiteral) {
114114
verify(encoder)
115115
if (value.isString) {

formats/json/commonMain/src/kotlinx/serialization/json/internal/Composers.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ internal open class Composer(@JvmField internal val sb: JsonStringBuilder) {
4141
fun printQuoted(value: String): Unit = sb.appendQuoted(value)
4242
}
4343

44-
@ExperimentalUnsignedTypes
4544
internal class ComposerForUnsignedNumbers(sb: JsonStringBuilder, private val forceQuoting: Boolean) : Composer(sb) {
4645
override fun print(v: Int) {
4746
if (forceQuoting) printQuoted(v.toUInt().toString()) else print(v.toUInt().toString())

formats/json/commonMain/src/kotlinx/serialization/json/internal/StreamingJsonDecoder.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import kotlin.jvm.*
1717
/**
1818
* [JsonDecoder] which reads given JSON from [AbstractJsonLexer] field by field.
1919
*/
20-
@OptIn(ExperimentalSerializationApi::class, ExperimentalUnsignedTypes::class)
20+
@OptIn(ExperimentalSerializationApi::class)
2121
internal open class StreamingJsonDecoder(
2222
final override val json: Json,
2323
private val mode: WriteMode,
@@ -354,7 +354,6 @@ internal open class StreamingJsonDecoder(
354354
}
355355

356356
@OptIn(ExperimentalSerializationApi::class)
357-
@ExperimentalUnsignedTypes
358357
internal class JsonDecoderForUnsignedTypes(
359358
private val lexer: AbstractJsonLexer,
360359
json: Json

formats/json/commonMain/src/kotlinx/serialization/json/internal/StreamingJsonEncoder.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import kotlinx.serialization.json.*
1212
import kotlinx.serialization.modules.*
1313
import kotlin.native.concurrent.*
1414

15-
@OptIn(ExperimentalUnsignedTypes::class)
1615
@SharedImmutable
1716
private val unsignedNumberDescriptors = setOf(
1817
UInt.serializer().descriptor,
@@ -24,7 +23,7 @@ private val unsignedNumberDescriptors = setOf(
2423
internal val SerialDescriptor.isUnsignedNumber: Boolean
2524
get() = this.isInline && this in unsignedNumberDescriptors
2625

27-
@OptIn(ExperimentalSerializationApi::class, ExperimentalUnsignedTypes::class)
26+
@OptIn(ExperimentalSerializationApi::class)
2827
internal class StreamingJsonEncoder(
2928
private val composer: Composer,
3029
override val json: Json,

formats/json/commonMain/src/kotlinx/serialization/json/internal/TreeJsonDecoder.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ private sealed class AbstractJsonTreeDecoder(
161161
return this as? JsonLiteral ?: throw JsonDecodingException(-1, "Unexpected 'null' when $type was expected")
162162
}
163163

164-
@OptIn(ExperimentalUnsignedTypes::class)
165164
override fun decodeTaggedInline(tag: String, inlineDescriptor: SerialDescriptor): Decoder =
166165
if (inlineDescriptor.isUnsignedNumber) JsonDecoderForUnsignedTypes(StringJsonLexer(getPrimitiveValue(tag).content), json)
167166
else super.decodeTaggedInline(tag, inlineDescriptor)

formats/json/commonMain/src/kotlinx/serialization/json/internal/TreeJsonEncoder.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ private sealed class AbstractJsonTreeEncoder(
101101
putElement(tag, JsonPrimitive(value.toString()))
102102
}
103103

104-
@OptIn(ExperimentalUnsignedTypes::class)
105104
override fun encodeTaggedInline(tag: String, inlineDescriptor: SerialDescriptor): Encoder =
106105
if (inlineDescriptor.isUnsignedNumber) object : AbstractEncoder() {
107106
override val serializersModule: SerializersModule = json.serializersModule

0 commit comments

Comments
 (0)