diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-10-21 13:24:41 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2009-10-21 13:24:41 +0000 |
commit | f818b44b1c7a4ad62271600d85dc41602a7349f7 (patch) | |
tree | ffd58eb03cb644872ffdbedf4725b147588b2742 /src/library/scala/collection/immutable/List.scala | |
parent | 70bc8f93c56d6ac2390bbae8a0ab173926240549 (diff) | |
download | scala-f818b44b1c7a4ad62271600d85dc41602a7349f7.tar.gz scala-f818b44b1c7a4ad62271600d85dc41602a7349f7.tar.bz2 scala-f818b44b1c7a4ad62271600d85dc41602a7349f7.zip |
renamed BuilderFactory[El, To, From] -> CanBuil...
renamed BuilderFactory[El, To, From] -> CanBuildFrom[From, El, To] and
added apply() overload to create collections from scratch generically
added def apply() overload to BuilderFactory so that we can also create collections from scratch generically
(see test test/files/pos/collectGenericCC.scala)
renaming:
- BuilderFactory[El, To, From] -> CanBuildFrom[From, El, To]
bulk type-param reordering using: s/CanBuildFrom\[\s*([^,()\s]*)\s*,(\s+[^\s,()]*)\s*,\s+([^\s,()]*)\s*\]/CanBuildFrom[$3, $1,$2]/
some argument lists got mixed up because they contained 4 comma's...
- builderFactory -> canBuildFrom
removed explicit implicit value in DocDriver that was
renamed renamed collection/generic/BuilderFactory.scala ->
collection/generic/CanBuildFrom.scala
tested with clean build using ant strap.done -- everything went well on my machine
Diffstat (limited to 'src/library/scala/collection/immutable/List.scala')
-rw-r--r-- | src/library/scala/collection/immutable/List.scala | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/library/scala/collection/immutable/List.scala b/src/library/scala/collection/immutable/List.scala index b7a2908536..79be24cb3e 100644 --- a/src/library/scala/collection/immutable/List.scala +++ b/src/library/scala/collection/immutable/List.scala @@ -147,7 +147,7 @@ sealed abstract class List[+A] extends LinearSeq[A] /** Create a new list which contains all elements of this list * followed by all elements of Traversable `that' */ - override def ++[B >: A, That](that: Traversable[B])(implicit bf: BuilderFactory[B, That, List[A]]): That = { + override def ++[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[List[A], B, That]): That = { val b = bf(this) if (b.isInstanceOf[ListBuffer[_]]) (this ::: that.toList).asInstanceOf[That] else super.++(that) @@ -156,7 +156,7 @@ sealed abstract class List[+A] extends LinearSeq[A] /** Create a new list which contains all elements of this list * followed by all elements of Iterator `that' */ - override def ++[B >: A, That](that: Iterator[B])(implicit bf: BuilderFactory[B, That, List[A]]): That = + override def ++[B >: A, That](that: Iterator[B])(implicit bf: CanBuildFrom[List[A], B, That]): That = this ++ that.toList /** Overrides the method in Iterable for efficiency. @@ -502,7 +502,11 @@ object List extends SeqFactory[List] { import scala.collection.{Iterable, Seq, Vector} - implicit def builderFactory[A]: BuilderFactory[A, List[A], Coll] = new VirtualBuilderFactory[A] + implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, List[A]] = + new GenericCanBuildFrom[A] { + def apply() = newBuilder[A] + } + def newBuilder[A]: Builder[A, List[A]] = new ListBuffer[A] override def empty[A]: List[A] = Nil |