From a0b09946517b304e5e21860faa8ab5f481f1f784 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Fri, 17 Aug 2018 04:45:39 +0300 Subject: [PATCH] Make unsigned array constructor-like functions inline-only --- generators/builtins/unsignedTypes.kt | 3 ++- .../stdlib/unsigned/src/kotlin/UByteArray.kt | 3 ++- .../stdlib/unsigned/src/kotlin/UIntArray.kt | 3 ++- .../stdlib/unsigned/src/kotlin/ULongArray.kt | 3 ++- .../stdlib/unsigned/src/kotlin/UShortArray.kt | 3 ++- .../kotlin-stdlib-runtime-merged.txt | 20 ------------------- 6 files changed, 10 insertions(+), 25 deletions(-) diff --git a/generators/builtins/unsignedTypes.kt b/generators/builtins/unsignedTypes.kt index 21b3a4fb701..8b7572b22f4 100644 --- a/generators/builtins/unsignedTypes.kt +++ b/generators/builtins/unsignedTypes.kt @@ -328,13 +328,14 @@ class UnsignedArrayGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIn out.println(""" @SinceKotlin("1.3") @ExperimentalUnsignedTypes +@kotlin.internal.InlineOnly public inline fun $arrayType(size: Int, init: (Int) -> $elementType): $arrayType { return $arrayType($storageArrayType(size) { index -> init(index).to$storageElementType() }) } @SinceKotlin("1.3") @ExperimentalUnsignedTypes -// TODO: @kotlin.internal.InlineOnly +@kotlin.internal.InlineOnly public inline fun $arrayTypeOf(vararg elements: $elementType): $arrayType = elements""" ) } diff --git a/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt b/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt index bb5023af20a..65bcd7ec05c 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt @@ -46,11 +46,12 @@ internal constructor(private val storage: ByteArray) : Collection { @SinceKotlin("1.3") @ExperimentalUnsignedTypes +@kotlin.internal.InlineOnly public inline fun UByteArray(size: Int, init: (Int) -> UByte): UByteArray { return UByteArray(ByteArray(size) { index -> init(index).toByte() }) } @SinceKotlin("1.3") @ExperimentalUnsignedTypes -// TODO: @kotlin.internal.InlineOnly +@kotlin.internal.InlineOnly public inline fun ubyteArrayOf(vararg elements: UByte): UByteArray = elements diff --git a/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt b/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt index 8e7afc44a55..cf8798332ff 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt @@ -46,11 +46,12 @@ internal constructor(private val storage: IntArray) : Collection { @SinceKotlin("1.3") @ExperimentalUnsignedTypes +@kotlin.internal.InlineOnly public inline fun UIntArray(size: Int, init: (Int) -> UInt): UIntArray { return UIntArray(IntArray(size) { index -> init(index).toInt() }) } @SinceKotlin("1.3") @ExperimentalUnsignedTypes -// TODO: @kotlin.internal.InlineOnly +@kotlin.internal.InlineOnly public inline fun uintArrayOf(vararg elements: UInt): UIntArray = elements diff --git a/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt b/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt index 7a708aec871..e86b8f8f9d5 100644 --- a/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt @@ -46,11 +46,12 @@ internal constructor(private val storage: LongArray) : Collection { @SinceKotlin("1.3") @ExperimentalUnsignedTypes +@kotlin.internal.InlineOnly public inline fun ULongArray(size: Int, init: (Int) -> ULong): ULongArray { return ULongArray(LongArray(size) { index -> init(index).toLong() }) } @SinceKotlin("1.3") @ExperimentalUnsignedTypes -// TODO: @kotlin.internal.InlineOnly +@kotlin.internal.InlineOnly public inline fun ulongArrayOf(vararg elements: ULong): ULongArray = elements diff --git a/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt b/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt index 26a02f9110b..d887edd1d3a 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt @@ -46,11 +46,12 @@ internal constructor(private val storage: ShortArray) : Collection { @SinceKotlin("1.3") @ExperimentalUnsignedTypes +@kotlin.internal.InlineOnly public inline fun UShortArray(size: Int, init: (Int) -> UShort): UShortArray { return UShortArray(ShortArray(size) { index -> init(index).toShort() }) } @SinceKotlin("1.3") @ExperimentalUnsignedTypes -// TODO: @kotlin.internal.InlineOnly +@kotlin.internal.InlineOnly public inline fun ushortArrayOf(vararg elements: UShort): UShortArray = elements diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt index 2249bbfaae4..41310a36cea 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt @@ -314,11 +314,6 @@ public final class kotlin/UByteArray$Erased { public static fun toString ([B)Ljava/lang/String; } -public final class kotlin/UByteArrayKt { - public static final fun UByteArray (ILkotlin/jvm/functions/Function1;)[B - public static final fun ubyteArrayOf ([B)[B -} - public final class kotlin/UByteKt { public static final fun toUByte (B)B public static final fun toUByte (I)B @@ -434,11 +429,6 @@ public final class kotlin/UIntArray$Erased { public static fun toString ([I)Ljava/lang/String; } -public final class kotlin/UIntArrayKt { - public static final fun UIntArray (ILkotlin/jvm/functions/Function1;)[I - public static final fun uintArrayOf ([I)[I -} - public final class kotlin/UIntKt { public static final fun toUInt (B)I public static final fun toUInt (I)I @@ -554,11 +544,6 @@ public final class kotlin/ULongArray$Erased { public static fun toString ([J)Ljava/lang/String; } -public final class kotlin/ULongArrayKt { - public static final fun ULongArray (ILkotlin/jvm/functions/Function1;)[J - public static final fun ulongArrayOf ([J)[J -} - public final class kotlin/ULongKt { public static final fun toULong (B)J public static final fun toULong (I)J @@ -672,11 +657,6 @@ public final class kotlin/UShortArray$Erased { public static fun toString ([S)Ljava/lang/String; } -public final class kotlin/UShortArrayKt { - public static final fun UShortArray (ILkotlin/jvm/functions/Function1;)[S - public static final fun ushortArrayOf ([S)[S -} - public final class kotlin/UShortKt { public static final fun toUShort (B)S public static final fun toUShort (I)S