Implement fill extension function for UArrays (KT-28339)

This commit is contained in:
Abduqodiri Qurbonzoda
2019-01-23 12:24:47 +03:00
committed by Ilya Gorbunov
parent 6b92190726
commit 876dff6d22
4 changed files with 109 additions and 9 deletions
@@ -1205,7 +1205,7 @@ object ArrayOps : TemplateGroupBase() {
val f_fill = fn("fill(element: T, fromIndex: Int = 0, toIndex: Int = size)") {
platforms(Platform.JVM)
include(InvariantArraysOfObjects, ArraysOfPrimitives)
include(InvariantArraysOfObjects, ArraysOfPrimitives, ArraysOfUnsigned)
} builder {
doc { "Fills original array with the provided value." }
returns("Unit")
@@ -1214,6 +1214,13 @@ object ArrayOps : TemplateGroupBase() {
java.util.Arrays.fill(this, fromIndex, toIndex, element)
"""
}
specialFor(ArraysOfUnsigned) {
val signedPrimitiveName = primitive!!.name.drop(1)
body {
"storage.fill(element.to$signedPrimitiveName(), fromIndex, toIndex)"
}
}
}
val f_binarySearch = fn("binarySearch(element: T, fromIndex: Int = 0, toIndex: Int = size)") {