diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-08-19 12:26:25 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-08-19 12:26:25 +0000 |
commit | 1ededc1ab0be9565ab75f971cba7604ce977803c (patch) | |
tree | 0b64ae57c3342f3d63d378ec643ee3b11580ae17 /src/library | |
parent | 9d202a7a8d40cac83706e98c59c72f08f355af58 (diff) | |
download | scala-1ededc1ab0be9565ab75f971cba7604ce977803c.tar.gz scala-1ededc1ab0be9565ab75f971cba7604ce977803c.tar.bz2 scala-1ededc1ab0be9565ab75f971cba7604ce977803c.zip |
closes #2788.
the added flexibility'll cost ya one ClassManifest
review by phaller
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 } |