summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/immutable/List.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-05-14 09:36:49 +0000
committerMartin Odersky <odersky@gmail.com>2009-05-14 09:36:49 +0000
commit8fa8118e341cc0174d789b508b8b6ebab3571582 (patch)
treec45a0ba6be7233898f406dfdcf2f4a565a8f73ee /src/library/scala/collection/immutable/List.scala
parent302427358e0ab97c3a12302e94295ca09465589d (diff)
downloadscala-8fa8118e341cc0174d789b508b8b6ebab3571582.tar.gz
scala-8fa8118e341cc0174d789b508b8b6ebab3571582.tar.bz2
scala-8fa8118e341cc0174d789b508b8b6ebab3571582.zip
cleaned up collection builder framework
Diffstat (limited to 'src/library/scala/collection/immutable/List.scala')
-rw-r--r--src/library/scala/collection/immutable/List.scala15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/library/scala/collection/immutable/List.scala b/src/library/scala/collection/immutable/List.scala
index e715fad0fa..acfbdc531f 100644
--- a/src/library/scala/collection/immutable/List.scala
+++ b/src/library/scala/collection/immutable/List.scala
@@ -12,7 +12,7 @@
package scala.collection.immutable
import mutable.ListBuffer
-import generic.{SequenceFactory, Builder, BuilderFactory, LinearSequenceTemplate}
+import generic._
/** A class representing an ordered collection of elements of type
* <code>a</code>. This class comes with two implementing case
@@ -23,7 +23,11 @@ import generic.{SequenceFactory, Builder, BuilderFactory, LinearSequenceTemplate
* @author Martin Odersky and others
* @version 2.8
*/
-sealed abstract class List[+A] extends LinearSequence[A] with Product with LinearSequenceTemplate[A, List[A]] {
+sealed abstract class List[+A] extends LinearSequence[A]
+ with Product
+ with TraversableClass[A, List]
+ with LinearSequenceTemplate[A, List[A]] {
+ override def companion: Companion[List] = List
import collection.{Iterable, Traversable, Sequence, Vector}
@@ -46,10 +50,6 @@ sealed abstract class List[+A] extends LinearSequence[A] with Product with Linea
*/
def tail: List[A]
- /** Creates a list buffer as builder for this class */
- override protected[this] def newBuilder = List.newBuilder
- override def traversableBuilder[B]: Builder[B, List[B]] = List.newBuilder[B]
-
// New methods in List
/** <p>
@@ -488,8 +488,7 @@ object List extends SequenceFactory[List] {
import collection.{Iterable, Sequence, Vector}
- type Coll = List[_]
- implicit def builderFactory[A]: BuilderFactory[A, List[A], Coll] = new BuilderFactory[A, List[A], Coll] { def apply(from: Coll) = new ListBuffer[A] }
+ implicit def builderFactory[A]: BuilderFactory[A, List[A], Coll] = new VirtualBuilderFactory[A]
def newBuilder[A]: Builder[A, List[A]] = new ListBuffer[A]
override def empty[A]: List[A] = Nil