diff options
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/collection/mutable/ArrayOps.scala | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/library/scala/collection/mutable/ArrayOps.scala b/src/library/scala/collection/mutable/ArrayOps.scala index 98d635ecee..a465e9152c 100644 --- a/src/library/scala/collection/mutable/ArrayOps.scala +++ b/src/library/scala/collection/mutable/ArrayOps.scala @@ -64,10 +64,11 @@ abstract class ArrayOps[T] extends ArrayLike[T, Array[T]] with Parallelizable[Pa * @param asArray A function that converts elements of this array to rows - arrays of type `U`. * @return An array obtained by concatenating rows of this array. */ - def flatten[U](implicit asArray: T => /*<:<!!!*/ Array[U]): Array[U] = { - val b = rowBuilder[U] + def flatten[U, To](implicit asTrav: T => collection.Traversable[U], m: ClassManifest[U]): Array[U] = { + val b = Array.newBuilder[U] + b.sizeHint(map{case is: IndexedSeq[_] => is.size case _ => 0} sum) for (xs <- this) - b ++= asArray(xs) + b ++= asTrav(xs) b.result } |