summaryrefslogtreecommitdiff
path: root/src/library
diff options
context:
space:
mode:
authorSean McDirmid <sean.mcdirmid@gmail.com>2008-01-27 13:11:26 +0000
committerSean McDirmid <sean.mcdirmid@gmail.com>2008-01-27 13:11:26 +0000
commit322c980230109582751836d1caf05836353e9cd8 (patch)
tree8cf5f6cfa8346139a530557044666cde6fa8318a /src/library
parent2fd65e0fd34d13c355deeea982f30dce714b6528 (diff)
downloadscala-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.scala8
-rw-r--r--src/library/scala/collection/immutable/SortedSet.scala6
-rw-r--r--src/library/scala/collection/immutable/TreeSet.scala2
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.