diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt index 6423e4d015a..4093b47ecaa 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/Arrays.kt @@ -611,7 +611,7 @@ object ArrayOps : TemplateGroupBase() { val thisSize = size val arraySize = elements.size val result = copyOfUninitializedElements(thisSize + arraySize) - elements.copyRangeTo(result, 0, arraySize, thisSize) + elements.copyInto(result, thisSize) return result """ } @@ -687,10 +687,19 @@ object ArrayOps : TemplateGroupBase() { suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") body { """ - this.copyRangeTo(destination, startIndex, endIndex, destinationOffset) + arrayCopy(this, startIndex, destination, destinationOffset, endIndex - startIndex) return destination """ } + specialFor(InvariantArraysOfObjects) { + body { + """ + @Suppress("UNCHECKED_CAST") + arrayCopy(this as Array, startIndex, destination as Array, destinationOffset, endIndex - startIndex) + return destination + """ + } + } } } }