Use Array constructor with size to create Array of nulls

Change the constructor visibility from public to private as it should be.
This commit is contained in:
Zalim Bashorov
2023-04-20 15:46:30 +02:00
committed by Space Team
parent a6520a294b
commit 77491ded1b
7 changed files with 8 additions and 7 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 14_217
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 12_295
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_579
// FILE: test.kt
+1 -1
View File
@@ -1,6 +1,6 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 49_207
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 48_188
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_605
fun box(): String {
+1 -1
View File
@@ -1,6 +1,6 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 15_582
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 13_660
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 6_134
// FILE: test.kt
+1 -1
View File
@@ -1,6 +1,6 @@
// TARGET_BACKEND: WASM
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 14_259
// WASM_DCE_EXPECTED_OUTPUT_SIZE: wasm 12_337
// WASM_DCE_EXPECTED_OUTPUT_SIZE: mjs 5_451
fun box() = "OK"
@@ -14,7 +14,7 @@ import kotlin.wasm.internal.*
* See [Kotlin language documentation](https://kotlinlang.org/docs/reference/basic-types.html#arrays)
* for more information on arrays.
*/
public class Array<T> constructor(size: Int) {
public class Array<T> @PublishedApi internal constructor(size: Int) {
internal val storage: WasmAnyArray = WasmAnyArray(size)
@Suppress("TYPE_PARAMETER_AS_REIFIED", "UNUSED_PARAMETER", "CAST_NEVER_SUCCEEDS")
@@ -28,6 +28,7 @@ public class Array<T> constructor(size: Int) {
* The function [init] is called for each array element sequentially starting from the first one.
* It should return the value for an array element given its index.
*/
// TODO: it have to be inline
@Suppress("TYPE_PARAMETER_AS_REIFIED")
public constructor(size: Int, init: (Int) -> T) : this(size) {
storage.fill(size, init)
@@ -30,7 +30,7 @@ public operator fun String?.plus(other: Any?): String = (this ?: "null") + other
*/
// TODO: Should T be reified?
@Suppress("REIFIED_TYPE_PARAMETER_NO_INLINE")
public fun <@PureReifiable reified T> arrayOfNulls(size: Int): Array<T?> = Array(size) { null }
public fun <@PureReifiable reified T> arrayOfNulls(size: Int): Array<T?> = Array(size)
/**
* Returns an array containing the specified elements.
@@ -119,4 +119,4 @@ internal fun stringGetPoolSize(): Int =
// This initializer is a special case in FieldInitializersLowering
@Suppress("DEPRECATION")
@EagerInitialization
internal val stringPool: Array<String?> = arrayOfNulls(stringGetPoolSize())
internal val stringPool: Array<String?> = Array(stringGetPoolSize())