summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/Queue.scala
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-11-19 12:38:09 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-11-19 12:38:09 +0000
commit349c8baeabaac7b59c58ada4043b7f35a94e848f (patch)
treec4e71d165450261b881fd005123b7a91b9a435da /src/library/scala/collection/mutable/Queue.scala
parentfcbf3715187470c8568057bebb7f9577f6163e88 (diff)
downloadscala-349c8baeabaac7b59c58ada4043b7f35a94e848f.tar.gz
scala-349c8baeabaac7b59c58ada4043b7f35a94e848f.tar.bz2
scala-349c8baeabaac7b59c58ada4043b7f35a94e848f.zip
Better integration for mutable list and queue.
No review.x
Diffstat (limited to 'src/library/scala/collection/mutable/Queue.scala')
-rw-r--r--src/library/scala/collection/mutable/Queue.scala17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/library/scala/collection/mutable/Queue.scala b/src/library/scala/collection/mutable/Queue.scala
index 9fb34b07aa..d808cdf537 100644
--- a/src/library/scala/collection/mutable/Queue.scala
+++ b/src/library/scala/collection/mutable/Queue.scala
@@ -29,9 +29,16 @@ import generic._
* @define willNotTerminateInf
*/
@serializable @cloneable
-class Queue[A] extends MutableList[A] with Cloneable[Queue[A]] {
+class Queue[A]
+extends MutableList[A]
+ with GenericTraversableTemplate[A, Queue]
+ with Cloneable[Queue[A]]
+{
+ override def companion: GenericCompanion[Queue] = Queue
- protected def this(fst: LinkedList[A], lst: LinkedList[A], lng: Int) {
+ override protected[this] def newBuilder = companion.newBuilder[A]
+
+ private[mutable] def this(fst: LinkedList[A], lst: LinkedList[A], lng: Int) {
this()
first0 = fst
last0 = lst
@@ -159,6 +166,8 @@ class Queue[A] extends MutableList[A] with Cloneable[Queue[A]] {
}
-object Queue {
- def apply[A](xs: A*): Queue[A] = new Queue[A] ++= xs
+object Queue extends SeqFactory[Queue] {
+ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Queue[A]] = new GenericCanBuildFrom[A]
+
+ def newBuilder[A]: Builder[A, Queue[A]] = new MutableList[A] mapResult { _.toQueue }
}