From 1363244de1afceaea4fea7d66093bf770e00c225 Mon Sep 17 00:00:00 2001 From: Tiark Rompf Date: Wed, 14 Oct 2009 18:54:19 +0000 Subject: scala.collection.Vector defaults to immutable --- src/library/scala/collection/Vector.scala | 7 ++++--- src/library/scala/collection/immutable/Vector.scala | 14 ++++++-------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/library/scala/collection/Vector.scala b/src/library/scala/collection/Vector.scala index 78228b6650..3b616c887b 100644 --- a/src/library/scala/collection/Vector.scala +++ b/src/library/scala/collection/Vector.scala @@ -6,13 +6,13 @@ ** |/ ** \* */ -// $Id$ +// $Id: Vector.scala 19035 2009-10-10 22:54:28Z rompf $ package scala.collection import generic._ -import mutable.{Builder, ArrayBuffer} +import scala.collection.mutable.Builder /**

* Sequences that support O(1) element access and O(1) length computation. @@ -34,8 +34,9 @@ trait Vector[+A] extends Seq[A] } object Vector extends SeqFactory[Vector] { + override def empty[A]: Vector[A] = immutable.Vector.empty[A] implicit def builderFactory[A]: BuilderFactory[A, Vector[A], Coll] = new VirtualBuilderFactory[A] - def newBuilder[A]: Builder[A, Vector[A]] = mutable.Vector.newBuilder[A] + def newBuilder[A]: Builder[A, Vector[A]] = immutable.Vector.newBuilder[A] @deprecated("use collection.mutable.Vector instead") type Mutable[A] = scala.collection.mutable.Vector[A] } diff --git a/src/library/scala/collection/immutable/Vector.scala b/src/library/scala/collection/immutable/Vector.scala index 21e032f255..30d766ee01 100644 --- a/src/library/scala/collection/immutable/Vector.scala +++ b/src/library/scala/collection/immutable/Vector.scala @@ -6,7 +6,7 @@ ** |/ ** \* */ -// $Id$ +// $Id: Vector.scala 19072 2009-10-13 12:19:59Z rompf $ // Questions: how to name update, appendFront, appendBack? @@ -17,7 +17,6 @@ package scala.collection package immutable import scala.annotation.unchecked.uncheckedVariance -import compat.Platform.arraycopy import scala.collection.generic._ import scala.collection.mutable.Builder @@ -40,8 +39,8 @@ trait Vector[+A] extends Seq[A] object Vector extends SeqFactory[Vector] { implicit def builderFactory[A]: BuilderFactory[A, Vector[A], Coll] = new VirtualBuilderFactory[A] - def newBuilder[A]: Builder[A, Vector[A]] = - NewVector.newBuilder[A] + override def empty[A]: Vector[A] = NewVector.empty[A] + def newBuilder[A]: Builder[A, Vector[A]] = NewVector.newBuilder[A] } @@ -59,8 +58,7 @@ trait NewVector[+A] extends Vector[A] object NewVector extends SeqFactory[NewVector] { implicit def builderFactory[A]: BuilderFactory[A, NewVector[A], Coll] = new VirtualBuilderFactory[A] - def newBuilder[A]: Builder[A, NewVector[A]] = - new NewVectorBuilder[A] + def newBuilder[A]: Builder[A, NewVector[A]] = new NewVectorBuilder[A] // TODO: override object empty { } } @@ -150,7 +148,7 @@ class NewVectorImpl[+A](startIndex: Int, endIndex: Int, focus: Int) extends NewV private def copyRange(array: Array[AnyRef], oldLeft: Int, newLeft: Int) = { val elems = new Array[AnyRef](32) - arraycopy(array, oldLeft, elems, newLeft, 32 - Math.max(newLeft,oldLeft)) + System.arraycopy(array, oldLeft, elems, newLeft, 32 - Math.max(newLeft,oldLeft)) elems } @@ -745,7 +743,7 @@ trait NewVectorPointer[T] { final def copyOf(a: Array[AnyRef]) = { // //println("copy") val b = new Array[AnyRef](a.length) - arraycopy(a, 0, b, 0, a.length) + System.arraycopy(a, 0, b, 0, a.length) b } -- cgit v1.2.3