summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/Traversable.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2009-10-21 13:24:41 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2009-10-21 13:24:41 +0000
commitf818b44b1c7a4ad62271600d85dc41602a7349f7 (patch)
treeffd58eb03cb644872ffdbedf4725b147588b2742 /src/library/scala/collection/Traversable.scala
parent70bc8f93c56d6ac2390bbae8a0ab173926240549 (diff)
downloadscala-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/Traversable.scala')
-rw-r--r--src/library/scala/collection/Traversable.scala15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/library/scala/collection/Traversable.scala b/src/library/scala/collection/Traversable.scala
index a5d4c6b18a..6abdc67a70 100644
--- a/src/library/scala/collection/Traversable.scala
+++ b/src/library/scala/collection/Traversable.scala
@@ -39,10 +39,10 @@ trait Traversable[+A] extends TraversableLike[A, Traversable[A]]
override def isEmpty: Boolean
override def size: Int
override def hasDefiniteSize
- override def ++[B >: A, That](that: Traversable[B])(implicit bf: BuilderFactory[B, That, Traversable[A]]): That
- override def ++[B >: A, That](that: Iterator[B])(implicit bf: BuilderFactory[B, That, Traversable[A]]): That
- override def map[B, That](f: A => B)(implicit bf: BuilderFactory[B, That, Traversable[A]]): That
- override def flatMap[B, That](f: A => Traversable[B])(implicit bf: BuilderFactory[B, That, Traversable[A]]): That
+ override def ++[B >: A, That](that: Traversable[B])(implicit bf: CanBuildFrom[Traversable[A], B, That]): That
+ override def ++[B >: A, That](that: Iterator[B])(implicit bf: CanBuildFrom[Traversable[A], B, That]): That
+ override def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Traversable[A], B, That]): That
+ override def flatMap[B, That](f: A => Traversable[B])(implicit bf: CanBuildFrom[Traversable[A], B, That]): That
override def filter(p: A => Boolean): Traversable[A]
override def remove(p: A => Boolean): Traversable[A]
override def partition(p: A => Boolean): (Traversable[A], Traversable[A])
@@ -105,9 +105,10 @@ object Traversable extends TraversableFactory[Traversable] { self =>
/** provide break functionality separate from client code */
private[collection] val breaks: Breaks = new Breaks
- implicit def builderFactory[A]: BuilderFactory[A, Traversable[A], Coll] =
- new VirtualBuilderFactory[A]
-
+ implicit def canBuildFrom[A]: CanBuildFrom[Coll, A, Traversable[A]] =
+ new GenericCanBuildFrom[A] {
+ def apply() = newBuilder[A]
+ }
def newBuilder[A]: Builder[A, Traversable[A]] = immutable.Traversable.newBuilder[A]
}