summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/collection/mutable/ArrayOps.scala7
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
}