Skip to content

Commit 52236a4

Browse files
committed
Add toArray to IArray
1 parent 21f3c1d commit 52236a4

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

library/src/scala/IArray.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,10 @@ object opaques:
259259
extension [T](arr: IArray[T]) def takeWhile(p: T => Boolean): IArray[T] =
260260
genericArrayOps(arr).takeWhile(p)
261261

262+
/** Returns a mutable copy of this immutable array. */
263+
extension [T](arr: IArray[T]) def toArray: Array[T] =
264+
arr.clone.asInstanceOf[Array[T]]
265+
262266
/** Converts an array of pairs into an array of first elements and an array of second elements. */
263267
extension [U: ClassTag, V: ClassTag](arr: IArray[(U, V)]) def unzip: (IArray[U], IArray[V]) =
264268
genericArrayOps(arr).unzip

tests/run/iarrays.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,8 @@ object Test extends App {
7979
val fs: Array[Any] = new Array[Any](10)
8080
ds.copyToArray(fs, 5, 2)
8181
assert(fs.toList == List(null, null, null, null, null, 1, 2, null, null, null))
82+
83+
// Check toArray
84+
ds.toArray(0) = 0
85+
assert(ds(0) == 1)
8286
}

0 commit comments

Comments
 (0)