summaryrefslogtreecommitdiff
path: root/src/library/scalax/runtime/StringVector.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scalax/runtime/StringVector.scala')
-rw-r--r--src/library/scalax/runtime/StringVector.scala15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/library/scalax/runtime/StringVector.scala b/src/library/scalax/runtime/StringVector.scala
index ee7a805449..c12243bed7 100644
--- a/src/library/scalax/runtime/StringVector.scala
+++ b/src/library/scalax/runtime/StringVector.scala
@@ -12,7 +12,7 @@
package scalax.runtime
import collection.immutable.Vector
-import collection.mutable.{ArrayBuffer, BuilderProxy}
+import collection.mutable.ArrayBuffer
import collection.generic.covariant.VectorTemplate
object StringVector {
@@ -22,7 +22,7 @@ object StringVector {
}
@cloneable
-abstract class StringVector[+A] extends VectorTemplate[StringVector, A] with Vector[A] with Boxed[String] {
+abstract class StringVector[+A] extends VectorTemplate[StringVector, A] with Vector[A] {
/** The length of the string */
def length: Int
@@ -31,12 +31,11 @@ abstract class StringVector[+A] extends VectorTemplate[StringVector, A] with Vec
def apply(idx: Int): A
/** Creates new builder for this collection */
- def newBuilder[B] = new BuilderProxy[StringVector, B] {
- val self = new ArrayBuffer[B]
- def result: StringVector[B] = new StringVector[B] {
- def length = self.length
- def apply(n: Int) = self.apply(n)
- override def foreach(f: B => Unit) = self.foreach(f)
+ def newBuilder[B] = new ArrayBuffer[B].mapResult[StringVector] { // !!! Adriaan: can't drop [StringVector] here
+ buf => new StringVector[B] {
+ def length = buf.length
+ def apply(n: Int) = buf.apply(n)
+ override def foreach(f: B => Unit) = buf.foreach(f)
}
}