Remove reified constraint from Array constructors #KT-57363

This is an attempt to bring consistency to array constructors reified requirement.
Currently,
JVM - reified type in all three: arrayOfNulls, arrayOf, emptyArray
Native - reified in arrayOfNulls and arrayOf, but not in emptyArray
JS & Wasm - reified in arrayOfNulls, but not in arrayOf and emptyArray

Merge-request: KT-MR-11005
Merged-by: Abduqodiri Qurbonzoda <abduqodiri.qurbonzoda@jetbrains.com>
This commit is contained in:
Abduqodiri Qurbonzoda
2023-07-26 10:17:45 +00:00
committed by Space Team
parent 2a24eaeb74
commit 86c1e0ded6
4 changed files with 6 additions and 10 deletions
+1 -1
View File
@@ -45,7 +45,7 @@ public inline fun UShortArray(size: kotlin.Int, init: (kotlin.Int) -> kotlin.USh
public inline fun <T> arrayOf(vararg elements: T): kotlin.Array<T>
public inline fun <reified T> arrayOfNulls(size: kotlin.Int): kotlin.Array<T?>
public inline fun <T> arrayOfNulls(size: kotlin.Int): kotlin.Array<T?>
public inline fun booleanArrayOf(vararg elements: kotlin.Boolean): kotlin.BooleanArray
+1 -2
View File
@@ -7,7 +7,6 @@
package kotlin
import kotlin.internal.PureReifiable
import kotlin.js.*
/**
@@ -27,7 +26,7 @@ public operator fun String?.plus(other: Any?): String =
/**
* Returns an array of objects of the given type with the given [size], initialized with null values.
*/
public inline fun <reified T> arrayOfNulls(size: Int): Array<T?> = fillArrayVal<T?>(Array<T?>(size), null)
public inline fun <T> arrayOfNulls(size: Int): Array<T?> = fillArrayVal<T?>(Array<T?>(size), null)
/**
* Returns an array containing the specified elements.
@@ -7,7 +7,6 @@
package kotlin
import kotlin.internal.PureReifiable
import kotlin.wasm.internal.enumValueOfIntrinsic
import kotlin.wasm.internal.enumValuesIntrinsic
@@ -30,9 +29,8 @@ public operator fun String?.plus(other: Any?): String = (this ?: "null") + other
*
* @throws RuntimeException if the specified [size] is negative.
*/
// TODO: Should T be reified?
@Suppress("REIFIED_TYPE_PARAMETER_NO_INLINE")
public fun <@PureReifiable reified T> arrayOfNulls(size: Int): Array<T?> = Array(size)
@Suppress("UNCHECKED_CAST")
public inline fun <T> arrayOfNulls(size: Int): Array<T?> = Array<Any?>(size) as Array<T?>
/**
* Returns an array containing the specified elements.