summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/Iterable.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/Iterable.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/Iterable.scala')
-rw-r--r--src/library/scala/collection/Iterable.scala11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/library/scala/collection/Iterable.scala b/src/library/scala/collection/Iterable.scala
index 42b6c5afe7..af52831428 100644
--- a/src/library/scala/collection/Iterable.scala
+++ b/src/library/scala/collection/Iterable.scala
@@ -31,9 +31,10 @@ import generic._
* @author Martin Odersky
* @version 2.8
*/
-trait Iterable[+A] extends Traversable[A] with IterableTemplate[A, Iterable[A]] {
- override protected[this] def newBuilder = Iterable.newBuilder
- override def traversableBuilder[B]: Builder[B, Iterable[B]] = Iterable.newBuilder[B]
+trait Iterable[+A] extends Traversable[A]
+ with TraversableClass[A, Iterable]
+ with IterableTemplate[A, Iterable[A]] {
+ override def companion: Companion[Iterable] = Iterable
/* The following methods are inherited from trait IterableTemplate
*
@@ -44,13 +45,13 @@ trait Iterable[+A] extends Traversable[A] with IterableTemplate[A, Iterable[A]]
override def view
override def view(from: Int, until: Int)
*/
+
}
/** Factory methods and utilities for instances of type Traversable */
object Iterable extends TraversableFactory[Iterable] {
- type Coll = Iterable[_]
- implicit def builderFactory[A]: BuilderFactory[A, Iterable[A], Coll] = new BuilderFactory[A, Iterable[A], Coll] { def apply(from: Coll) = from.traversableBuilder[A] }
+ implicit def builderFactory[A]: BuilderFactory[A, Iterable[A], Coll] = new VirtualBuilderFactory[A]
def newBuilder[A]: Builder[A, Iterable[A]] = immutable.Iterable.newBuilder[A]
def fromOld[A](it: scala.Iterable[A]): Iterable[A] = new Iterable[A] {