diff options
author | Sean McDirmid <sean.mcdirmid@gmail.com> | 2008-01-27 13:11:26 +0000 |
---|---|---|
committer | Sean McDirmid <sean.mcdirmid@gmail.com> | 2008-01-27 13:11:26 +0000 |
commit | 322c980230109582751836d1caf05836353e9cd8 (patch) | |
tree | 8cf5f6cfa8346139a530557044666cde6fa8318a /src/library | |
parent | 2fd65e0fd34d13c355deeea982f30dce714b6528 (diff) | |
download | scala-322c980230109582751836d1caf05836353e9cd8.tar.gz scala-322c980230109582751836d1caf05836353e9cd8.tar.bz2 scala-322c980230109582751836d1caf05836353e9cd8.zip |
Another massive IDE checkin.
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/Array.scala | 8 | ||||
-rw-r--r-- | src/library/scala/collection/immutable/SortedSet.scala | 6 | ||||
-rw-r--r-- | src/library/scala/collection/immutable/TreeSet.scala | 2 |
3 files changed, 12 insertions, 4 deletions
diff --git a/src/library/scala/Array.scala b/src/library/scala/Array.scala index 540a63a2dc..bafe0ac58e 100644 --- a/src/library/scala/Array.scala +++ b/src/library/scala/Array.scala @@ -180,7 +180,10 @@ object Array { */ def unapplySeq[A](x: Array[A]): Option[Seq[A]] = Some(x) - trait Projection[A] extends RandomAccessSeq.MutableProjection[A] { + trait ArrayLike[A] extends RandomAccessSeq.Mutable[A] { + def force : Array[A] + } + trait Projection[A] extends RandomAccessSeq.MutableProjection[A] with ArrayLike[A] { protected def newArray[B >: A](length : Int, elements : Iterator[A]) : Array[B] override def toArray[B >: A] = (newArray(length, elements))//:Any).asInstanceOf[Array[B]] override def force : Array[A] = toArray @@ -206,12 +209,13 @@ object Array { override def stringPrefix = Projection.this.stringPrefix + "R" } } - trait Array0[A] extends RandomAccessSeq.Mutable[A] { + trait Array0[A] extends RandomAccessSeq.Mutable[A] with ArrayLike[A] { override def projection : Projection[A] = throw new Error override def slice(from : Int, until : Int) : Projection[A] = projection.slice(from, until) override def take(until : Int) : Projection[A] = projection.take(until) override def drop(from : Int) : Projection[A] = projection.drop(from) override def reverse = projection.reverse + override def force = asInstanceOf[Array[A]] } } diff --git a/src/library/scala/collection/immutable/SortedSet.scala b/src/library/scala/collection/immutable/SortedSet.scala index 3ff391898d..02ea3ea5b3 100644 --- a/src/library/scala/collection/immutable/SortedSet.scala +++ b/src/library/scala/collection/immutable/SortedSet.scala @@ -10,4 +10,8 @@ package scala.collection.immutable -trait SortedSet[A] extends scala.collection.SortedSet[A] with Set[A] +trait SortedSet[A] extends scala.collection.SortedSet[A] with Set[A] { + override def ++ (elems: Iterable[A]): SortedSet[A] = + (this /: elems) ((s, elem) => s + elem) + override def +(elem: A): SortedSet[A] +} diff --git a/src/library/scala/collection/immutable/TreeSet.scala b/src/library/scala/collection/immutable/TreeSet.scala index bed77fcc64..6ff059e5ab 100644 --- a/src/library/scala/collection/immutable/TreeSet.scala +++ b/src/library/scala/collection/immutable/TreeSet.scala @@ -21,7 +21,7 @@ object TreeSet { /** The canonical factory for this type */ - def apply[A <% Ordered[A]](elems: A*) = empty[A] ++ elems + def apply[A <% Ordered[A]](elems: A*) : SortedSet[A] = empty[A] ++ elems } /** This class implements immutable sets using a tree. |