From ba2833b90f7b098dc24ce47771cb7925fb47b743 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Mon, 16 Jan 2023 08:40:05 +0200 Subject: [PATCH] Mark Base64 API with ExperimentalEncodingApi --- libraries/stdlib/api/js-v1/kotlin.io.encoding.kt | 2 +- libraries/stdlib/api/js/kotlin.io.encoding.kt | 2 +- libraries/stdlib/common/build.gradle | 1 + libraries/stdlib/jdk7/build.gradle | 1 + libraries/stdlib/jdk8/build.gradle | 1 + libraries/stdlib/js-ir/build.gradle.kts | 1 + libraries/stdlib/js-v1/build.gradle | 1 + .../stdlib/js/src/kotlin/io/encoding/Base64Js.kt | 8 ++++---- libraries/stdlib/jvm/build.gradle | 1 + .../jvm/src/kotlin/io/encoding/Base64IOStream.kt | 8 ++++---- .../jvm/src/kotlin/io/encoding/Base64JVM.kt | 10 +++++----- .../native-wasm/src/kotlin/io/encoding/Base64.kt | 8 ++++---- .../stdlib/src/kotlin/io/encoding/Base64.kt | 16 ++++++++-------- libraries/stdlib/wasm/build.gradle.kts | 1 + .../kotlin/konan/blackboxtest/StdlibTest.kt | 5 +++-- 15 files changed, 37 insertions(+), 29 deletions(-) diff --git a/libraries/stdlib/api/js-v1/kotlin.io.encoding.kt b/libraries/stdlib/api/js-v1/kotlin.io.encoding.kt index 94a71b672b0..8241b5b1474 100644 --- a/libraries/stdlib/api/js-v1/kotlin.io.encoding.kt +++ b/libraries/stdlib/api/js-v1/kotlin.io.encoding.kt @@ -1,5 +1,5 @@ @kotlin.SinceKotlin(version = "1.8") -@kotlin.ExperimentalStdlibApi +@kotlin.io.encoding.ExperimentalEncodingApi public open class Base64 { public final fun decode(source: kotlin.ByteArray, startIndex: kotlin.Int = ..., endIndex: kotlin.Int = ...): kotlin.ByteArray diff --git a/libraries/stdlib/api/js/kotlin.io.encoding.kt b/libraries/stdlib/api/js/kotlin.io.encoding.kt index 94a71b672b0..8241b5b1474 100644 --- a/libraries/stdlib/api/js/kotlin.io.encoding.kt +++ b/libraries/stdlib/api/js/kotlin.io.encoding.kt @@ -1,5 +1,5 @@ @kotlin.SinceKotlin(version = "1.8") -@kotlin.ExperimentalStdlibApi +@kotlin.io.encoding.ExperimentalEncodingApi public open class Base64 { public final fun decode(source: kotlin.ByteArray, startIndex: kotlin.Int = ..., endIndex: kotlin.Int = ...): kotlin.ByteArray diff --git a/libraries/stdlib/common/build.gradle b/libraries/stdlib/common/build.gradle index 2fa7afed159..c395d6c7609 100644 --- a/libraries/stdlib/common/build.gradle +++ b/libraries/stdlib/common/build.gradle @@ -58,6 +58,7 @@ compileTestKotlinCommon { "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", + "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi", "-XXLanguage:+RangeUntilOperator", ] } diff --git a/libraries/stdlib/jdk7/build.gradle b/libraries/stdlib/jdk7/build.gradle index 7af04e45c98..719642eb780 100644 --- a/libraries/stdlib/jdk7/build.gradle +++ b/libraries/stdlib/jdk7/build.gradle @@ -80,6 +80,7 @@ compileTestKotlin { "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", "-opt-in=kotlin.io.path.ExperimentalPathApi", + "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi", "-Xcommon-sources=${fileTree('../test').join(',')}", "-XXLanguage:+RangeUntilOperator", ] diff --git a/libraries/stdlib/jdk8/build.gradle b/libraries/stdlib/jdk8/build.gradle index fd23bb54a7e..0c999362e71 100644 --- a/libraries/stdlib/jdk8/build.gradle +++ b/libraries/stdlib/jdk8/build.gradle @@ -79,6 +79,7 @@ compileTestKotlin { "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", "-opt-in=kotlin.io.path.ExperimentalPathApi", + "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi", "-Xcommon-sources=${fileTree('../test').join(',')}", "-XXLanguage:+RangeUntilOperator", ] diff --git a/libraries/stdlib/js-ir/build.gradle.kts b/libraries/stdlib/js-ir/build.gradle.kts index 5747a2023c2..73633ca4a7e 100644 --- a/libraries/stdlib/js-ir/build.gradle.kts +++ b/libraries/stdlib/js-ir/build.gradle.kts @@ -143,6 +143,7 @@ tasks.withType>().configureEach { "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", + "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi", "-XXLanguage:+RangeUntilOperator", ) } diff --git a/libraries/stdlib/js-v1/build.gradle b/libraries/stdlib/js-v1/build.gradle index 93743bd02b7..1827c0c9d77 100644 --- a/libraries/stdlib/js-v1/build.gradle +++ b/libraries/stdlib/js-v1/build.gradle @@ -146,6 +146,7 @@ compileTestKotlin2Js { "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", + "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi", "-XXLanguage:+RangeUntilOperator", ] } diff --git a/libraries/stdlib/js/src/kotlin/io/encoding/Base64Js.kt b/libraries/stdlib/js/src/kotlin/io/encoding/Base64Js.kt index 6bc4d295aee..660d0add379 100644 --- a/libraries/stdlib/js/src/kotlin/io/encoding/Base64Js.kt +++ b/libraries/stdlib/js/src/kotlin/io/encoding/Base64Js.kt @@ -6,7 +6,7 @@ package kotlin.io.encoding @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformCharsToBytes(source: CharSequence, startIndex: Int, endIndex: Int): ByteArray { return charsToBytesImpl(source, startIndex, endIndex) @@ -14,7 +14,7 @@ internal actual inline fun Base64.platformCharsToBytes(source: CharSequence, sta @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeToString(source: ByteArray, startIndex: Int, endIndex: Int): String { val byteResult = encodeToByteArrayImpl(source, startIndex, endIndex) @@ -22,7 +22,7 @@ internal actual inline fun Base64.platformEncodeToString(source: ByteArray, star } @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeIntoByteArray( source: ByteArray, @@ -35,7 +35,7 @@ internal actual inline fun Base64.platformEncodeIntoByteArray( } @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeToByteArray( source: ByteArray, diff --git a/libraries/stdlib/jvm/build.gradle b/libraries/stdlib/jvm/build.gradle index 3af86c3d0e9..d4b410146eb 100644 --- a/libraries/stdlib/jvm/build.gradle +++ b/libraries/stdlib/jvm/build.gradle @@ -176,6 +176,7 @@ compileTestKotlin { "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", + "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi", "-XXLanguage:+RangeUntilOperator", ] // This is needed for JavaTypeTest; typeOf for non-reified type parameters doesn't work otherwise, for implementation reasons. diff --git a/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64IOStream.kt b/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64IOStream.kt index 89f4e06bc77..e04d2263147 100644 --- a/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64IOStream.kt +++ b/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64IOStream.kt @@ -35,7 +35,7 @@ import kotlin.io.encoding.Base64.Default.symbolsPerGroup * Closing the returned input stream will close the underlying input stream. */ @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi public fun InputStream.decodingWith(base64: Base64): InputStream { return DecodeInputStream(this, base64) } @@ -54,13 +54,13 @@ public fun InputStream.decodingWith(base64: Base64): InputStream { * Closing the returned output stream will close the underlying output stream. */ @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi public fun OutputStream.encodingWith(base64: Base64): OutputStream { return EncodeOutputStream(this, base64) } -@ExperimentalStdlibApi +@ExperimentalEncodingApi private class DecodeInputStream( private val input: InputStream, private val base64: Base64 @@ -228,7 +228,7 @@ private class DecodeInputStream( } } -@ExperimentalStdlibApi +@ExperimentalEncodingApi private class EncodeOutputStream( private val output: OutputStream, private val base64: Base64 diff --git a/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64JVM.kt b/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64JVM.kt index 2dc3e687407..5a3d8dba764 100644 --- a/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64JVM.kt +++ b/libraries/stdlib/jvm/src/kotlin/io/encoding/Base64JVM.kt @@ -6,7 +6,7 @@ package kotlin.io.encoding @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformCharsToBytes(source: CharSequence, startIndex: Int, endIndex: Int): ByteArray { return if (source is String) { @@ -20,7 +20,7 @@ internal actual inline fun Base64.platformCharsToBytes(source: CharSequence, sta @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeToString(source: ByteArray, startIndex: Int, endIndex: Int): String { // val subArray = if (startIndex == 0 && endIndex == source.size) { @@ -35,7 +35,7 @@ internal actual inline fun Base64.platformEncodeToString(source: ByteArray, star } @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeIntoByteArray( source: ByteArray, @@ -55,7 +55,7 @@ internal actual inline fun Base64.platformEncodeIntoByteArray( } @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeToByteArray( source: ByteArray, @@ -73,7 +73,7 @@ internal actual inline fun Base64.platformEncodeToByteArray( } //@SinceKotlin("1.8") -//@ExperimentalStdlibApi +//@ExperimentalEncodingApi //private fun Base64.javaEncoder(): java.util.Base64.Encoder { // return if (isMimeScheme) { // java.util.Base64.getMimeEncoder(Base64.mimeLineLength, Base64.mimeLineSeparatorSymbols) diff --git a/libraries/stdlib/native-wasm/src/kotlin/io/encoding/Base64.kt b/libraries/stdlib/native-wasm/src/kotlin/io/encoding/Base64.kt index 6bc4d295aee..660d0add379 100644 --- a/libraries/stdlib/native-wasm/src/kotlin/io/encoding/Base64.kt +++ b/libraries/stdlib/native-wasm/src/kotlin/io/encoding/Base64.kt @@ -6,7 +6,7 @@ package kotlin.io.encoding @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformCharsToBytes(source: CharSequence, startIndex: Int, endIndex: Int): ByteArray { return charsToBytesImpl(source, startIndex, endIndex) @@ -14,7 +14,7 @@ internal actual inline fun Base64.platformCharsToBytes(source: CharSequence, sta @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeToString(source: ByteArray, startIndex: Int, endIndex: Int): String { val byteResult = encodeToByteArrayImpl(source, startIndex, endIndex) @@ -22,7 +22,7 @@ internal actual inline fun Base64.platformEncodeToString(source: ByteArray, star } @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeIntoByteArray( source: ByteArray, @@ -35,7 +35,7 @@ internal actual inline fun Base64.platformEncodeIntoByteArray( } @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi @kotlin.internal.InlineOnly internal actual inline fun Base64.platformEncodeToByteArray( source: ByteArray, diff --git a/libraries/stdlib/src/kotlin/io/encoding/Base64.kt b/libraries/stdlib/src/kotlin/io/encoding/Base64.kt index ae005965f0e..0c628a25cef 100644 --- a/libraries/stdlib/src/kotlin/io/encoding/Base64.kt +++ b/libraries/stdlib/src/kotlin/io/encoding/Base64.kt @@ -16,7 +16,7 @@ import kotlin.native.concurrent.SharedImmutable * There are also [Base64.UrlSafe] and [Base64.Mime] instances. */ @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi public open class Base64 private constructor( internal val isUrlSafe: Boolean, internal val isMimeScheme: Boolean @@ -574,7 +574,7 @@ private val base64EncodeMap = byteArrayOf( 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47, /* 48 - 63 */ ) -@ExperimentalStdlibApi +@ExperimentalEncodingApi @SharedImmutable private val base64DecodeMap = IntArray(256).apply { this.fill(-1) @@ -593,7 +593,7 @@ private val base64UrlEncodeMap = byteArrayOf( 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 45, 95, /* 48 - 63 */ ) -@ExperimentalStdlibApi +@ExperimentalEncodingApi @SharedImmutable private val base64UrlDecodeMap = IntArray(256).apply { this.fill(-1) @@ -605,14 +605,14 @@ private val base64UrlDecodeMap = IntArray(256).apply { @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi internal fun isInMimeAlphabet(symbol: Int): Boolean { return symbol in base64DecodeMap.indices && base64DecodeMap[symbol] != -1 } @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi internal expect fun Base64.platformCharsToBytes( source: CharSequence, startIndex: Int, @@ -621,7 +621,7 @@ internal expect fun Base64.platformCharsToBytes( @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi internal expect fun Base64.platformEncodeToString( source: ByteArray, startIndex: Int, @@ -629,7 +629,7 @@ internal expect fun Base64.platformEncodeToString( ): String @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi internal expect fun Base64.platformEncodeIntoByteArray( source: ByteArray, destination: ByteArray, @@ -639,7 +639,7 @@ internal expect fun Base64.platformEncodeIntoByteArray( ): Int @SinceKotlin("1.8") -@ExperimentalStdlibApi +@ExperimentalEncodingApi internal expect fun Base64.platformEncodeToByteArray( source: ByteArray, startIndex: Int, diff --git a/libraries/stdlib/wasm/build.gradle.kts b/libraries/stdlib/wasm/build.gradle.kts index 4138cd1b8f7..7c4c307d1ce 100644 --- a/libraries/stdlib/wasm/build.gradle.kts +++ b/libraries/stdlib/wasm/build.gradle.kts @@ -123,6 +123,7 @@ tasks.withType>().configureEach { "-opt-in=kotlin.RequiresOptIn", "-opt-in=kotlin.ExperimentalUnsignedTypes", "-opt-in=kotlin.ExperimentalStdlibApi", + "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi", "-XXLanguage:+RangeUntilOperator", ) } diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt index 741f248cc4c..815ed922c98 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/StdlibTest.kt @@ -20,7 +20,7 @@ import org.junit.jupiter.api.TestFactory TC( name = "default", runnerType = TestRunnerType.DEFAULT, - freeCompilerArgs = [ENABLE_MPP, STDLIB_IS_A_FRIEND, ENABLE_X_STDLIB_API, ENABLE_RANGE_UNTIL], + freeCompilerArgs = [ENABLE_MPP, STDLIB_IS_A_FRIEND, ENABLE_X_STDLIB_API, ENABLE_X_ENCODING_API, ENABLE_RANGE_UNTIL], sourceLocations = [ "libraries/stdlib/test/**.kt", "libraries/stdlib/common/test/**.kt", @@ -33,7 +33,7 @@ import org.junit.jupiter.api.TestFactory TC( name = "worker", runnerType = TestRunnerType.WORKER, - freeCompilerArgs = [ENABLE_MPP, STDLIB_IS_A_FRIEND, ENABLE_X_STDLIB_API, ENABLE_RANGE_UNTIL], + freeCompilerArgs = [ENABLE_MPP, STDLIB_IS_A_FRIEND, ENABLE_X_STDLIB_API, ENABLE_X_ENCODING_API, ENABLE_RANGE_UNTIL], sourceLocations = [ "libraries/stdlib/test/**.kt", "libraries/stdlib/common/test/**.kt", @@ -55,5 +55,6 @@ class StdlibTest : AbstractNativeBlackBoxTest() { private const val ENABLE_MPP = "-Xmulti-platform" internal const val STDLIB_IS_A_FRIEND = "-friend-modules=$KOTLIN_NATIVE_DISTRIBUTION/klib/common/stdlib" private const val ENABLE_X_STDLIB_API = "-opt-in=kotlin.ExperimentalStdlibApi" +private const val ENABLE_X_ENCODING_API = "-opt-in=kotlin.io.encoding.ExperimentalEncodingApi" private const val ENABLE_RANGE_UNTIL = "-XXLanguage:+RangeUntilOperator" // keep until 1.8 private const val DISABLED_STDLIB_TEST = "test.collections.CollectionTest.abstractCollectionToArray" \ No newline at end of file