summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-10-11 23:17:47 +0000
committerPaul Phillips <paulp@improving.org>2010-10-11 23:17:47 +0000
commite5c22d9e0a11f0c1a0d29520f7420d709fb174ec (patch)
tree819aed10c296f998cc082acb24b4835cd2eca224
parent5c83be3b2bb200f53abd5e3c6667e78ce01ebe49 (diff)
downloadscala-e5c22d9e0a11f0c1a0d29520f7420d709fb174ec.tar.gz
scala-e5c22d9e0a11f0c1a0d29520f7420d709fb174ec.tar.bz2
scala-e5c22d9e0a11f0c1a0d29520f7420d709fb174ec.zip
An overhaul of the collection-oriented methods ...
An overhaul of the collection-oriented methods in Tuple2/Tuple3 (which still need to be taken all the way to Tuple5.) * Zip semantics: zip and zipped now properly terminate when any collection runs out of elements, even if others are infinite. In addition, short circuiting methods (exists and forall) will terminate if the condition is met, even in the presence of infinity. Example: scala> val ys = Stream from 1 ys: scala.collection.immutable.Stream[Int] = Stream(1, ?) scala> (ys, ys).zipped forall ((x, y) => x+y < 100) res0: Boolean = false scala> (ys, ys).zipped exists ((x, y) => x+y > 100) res1: Boolean = true * There are implicits converting Zipped2/3 to Traversable to expose all the methods which aren't defined in an arity-specific way in the tuple classes. I have mixed feelings about putting these in Predef; but if there is another way to make them visible by default I wasn't able to find it. Example putting said implicit to use: scala> (ys, ys, ys).zipped find { case (x, y, z) => x+y+z > 1000 } res0: Option[(Int, Int, Int)] = Some((334,334,334)) Already reviewed by moors, so no review.
-rw-r--r--src/build/genprod.scala220
-rw-r--r--src/library/scala/Function0.scala2
-rw-r--r--src/library/scala/Function1.scala3
-rw-r--r--src/library/scala/Function10.scala2
-rw-r--r--src/library/scala/Function11.scala2
-rw-r--r--src/library/scala/Function12.scala2
-rw-r--r--src/library/scala/Function13.scala2
-rw-r--r--src/library/scala/Function14.scala2
-rw-r--r--src/library/scala/Function15.scala2
-rw-r--r--src/library/scala/Function16.scala2
-rw-r--r--src/library/scala/Function17.scala2
-rw-r--r--src/library/scala/Function18.scala2
-rw-r--r--src/library/scala/Function19.scala2
-rw-r--r--src/library/scala/Function2.scala2
-rw-r--r--src/library/scala/Function20.scala2
-rw-r--r--src/library/scala/Function21.scala2
-rw-r--r--src/library/scala/Function22.scala2
-rw-r--r--src/library/scala/Function3.scala2
-rw-r--r--src/library/scala/Function4.scala2
-rw-r--r--src/library/scala/Function5.scala2
-rw-r--r--src/library/scala/Function6.scala2
-rw-r--r--src/library/scala/Function7.scala2
-rw-r--r--src/library/scala/Function8.scala2
-rw-r--r--src/library/scala/Function9.scala2
-rw-r--r--src/library/scala/Predef.scala31
-rw-r--r--src/library/scala/Product1.scala2
-rw-r--r--src/library/scala/Product10.scala2
-rw-r--r--src/library/scala/Product11.scala2
-rw-r--r--src/library/scala/Product12.scala2
-rw-r--r--src/library/scala/Product13.scala2
-rw-r--r--src/library/scala/Product14.scala2
-rw-r--r--src/library/scala/Product15.scala2
-rw-r--r--src/library/scala/Product16.scala2
-rw-r--r--src/library/scala/Product17.scala2
-rw-r--r--src/library/scala/Product18.scala2
-rw-r--r--src/library/scala/Product19.scala2
-rw-r--r--src/library/scala/Product2.scala2
-rw-r--r--src/library/scala/Product20.scala2
-rw-r--r--src/library/scala/Product21.scala2
-rw-r--r--src/library/scala/Product22.scala2
-rw-r--r--src/library/scala/Product3.scala2
-rw-r--r--src/library/scala/Product4.scala2
-rw-r--r--src/library/scala/Product5.scala2
-rw-r--r--src/library/scala/Product6.scala2
-rw-r--r--src/library/scala/Product7.scala2
-rw-r--r--src/library/scala/Product8.scala2
-rw-r--r--src/library/scala/Product9.scala2
-rw-r--r--src/library/scala/Tuple1.scala2
-rw-r--r--src/library/scala/Tuple10.scala2
-rw-r--r--src/library/scala/Tuple11.scala2
-rw-r--r--src/library/scala/Tuple12.scala2
-rw-r--r--src/library/scala/Tuple13.scala2
-rw-r--r--src/library/scala/Tuple14.scala2
-rw-r--r--src/library/scala/Tuple15.scala2
-rw-r--r--src/library/scala/Tuple16.scala2
-rw-r--r--src/library/scala/Tuple17.scala2
-rw-r--r--src/library/scala/Tuple18.scala2
-rw-r--r--src/library/scala/Tuple19.scala2
-rw-r--r--src/library/scala/Tuple2.scala89
-rw-r--r--src/library/scala/Tuple20.scala2
-rw-r--r--src/library/scala/Tuple21.scala2
-rw-r--r--src/library/scala/Tuple22.scala2
-rw-r--r--src/library/scala/Tuple3.scala119
-rw-r--r--src/library/scala/Tuple4.scala2
-rw-r--r--src/library/scala/Tuple5.scala2
-rw-r--r--src/library/scala/Tuple6.scala2
-rw-r--r--src/library/scala/Tuple7.scala2
-rw-r--r--src/library/scala/Tuple8.scala2
-rw-r--r--src/library/scala/Tuple9.scala2
-rw-r--r--src/library/scala/package.scala1
-rw-r--r--src/library/scala/runtime/AbstractFunction0.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction1.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction10.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction11.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction12.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction13.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction14.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction15.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction16.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction17.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction18.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction19.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction2.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction20.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction21.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction22.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction3.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction4.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction5.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction6.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction7.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction8.scala2
-rw-r--r--src/library/scala/runtime/AbstractFunction9.scala2
-rw-r--r--test/files/pos/t2673.scala4
-rw-r--r--test/files/run/tuple-zipped.scala39
95 files changed, 390 insertions, 290 deletions
diff --git a/src/build/genprod.scala b/src/build/genprod.scala
index 6849206f3c..08e907e99c 100644
--- a/src/build/genprod.scala
+++ b/src/build/genprod.scala
@@ -154,7 +154,11 @@ object FunctionOne extends Function(1) {
*/
def andThen[A](g: R => A): T1 => A = { x => g(apply(x)) }
- /** Turns a function A => Option[B] into a PartialFunction[A, B].
+ /** Turns a function A => Option[B] into a PartialFunction[A, B]. Important note:
+ * this transformation implies the original function will be called 2 or more
+ * times on each logical invocation, because the only way to supply an implementation
+ * of isDefinedAt is to call the function and examine the return value.
+ *
* @see PartialFunction#lift
* @return a partial function which is defined for those inputs
* where this function returns Some(_) and undefined where
@@ -273,8 +277,12 @@ trait {className}{contraCoArgs} extends AnyRef {{ self =>
T U P L E
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz */
-object Tuple
-{
+object Tuple {
+ val zipImports = """
+import scala.collection.{ TraversableLike => TLike, IterableLike => ILike }
+import scala.collection.generic.{ CanBuildFrom => CBF }
+"""
+
def make(i: Int) = apply(i)()
def apply(i: Int) = i match {
case 1 => TupleOne
@@ -291,26 +299,26 @@ object TupleOne extends Tuple(1)
object TupleTwo extends Tuple(2)
{
- override def imports = """
-import scala.collection.{TraversableLike, IterableLike}
-import scala.collection.generic.CanBuildFrom
-"""
+ override def imports = Tuple.zipImports
override def covariantSpecs = "@specialized(Int, Long, Double) "
override def moreMethods = """
/** Swap the elements of the tuple */
def swap: Tuple2[T2,T1] = Tuple2(_2, _1)
- def zip[Repr1, El1, El2, To](implicit w1: T1 => TraversableLike[El1, Repr1],
+ def zip[Repr1, El1, El2, To](implicit w1: T1 => TLike[El1, Repr1],
w2: T2 => Iterable[El2],
- cbf1: CanBuildFrom[Repr1, (El1, El2), To]): To = {
- val coll1: TraversableLike[El1, Repr1] = _1
+ cbf1: CBF[Repr1, (El1, El2), To]): To = {
+ val coll1: TLike[El1, Repr1] = _1
val coll2: Iterable[El2] = _2
val b1 = cbf1(coll1.repr)
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
b1 += ((el1, elems2.next))
+ else
+ return b1.result
+ }
b1.result
}
@@ -320,104 +328,108 @@ import scala.collection.generic.CanBuildFrom
* @see Zipped
* $willNotTerminateInf
*/
- def zipped[Repr1, El1, Repr2, El2](implicit w1: T1 => TraversableLike[El1, Repr1], w2: T2 => IterableLike[El2, Repr2]): Zipped[Repr1, El1, Repr2, El2]
+ def zipped[Repr1, El1, Repr2, El2](implicit w1: T1 => TLike[El1, Repr1], w2: T2 => ILike[El2, Repr2]): Zipped[Repr1, El1, Repr2, El2]
= new Zipped[Repr1, El1, Repr2, El2](_1, _2)
- class Zipped[+Repr1, +El1, +Repr2, +El2](coll1: TraversableLike[El1, Repr1], coll2: IterableLike[El2, Repr2]) { // coll2: IterableLike for filter
- def map[B, To](f: (El1, El2) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ class Zipped[+Repr1, +El1, +Repr2, +El2](coll1: TLike[El1, Repr1], coll2: ILike[El2, Repr2]) { // coll2: ILike for filter
+ def map[B, To](f: (El1, El2) => B)(implicit cbf: CBF[Repr1, B, To]): To = {
val b = cbf(coll1.repr)
b.sizeHint(coll1)
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
- b += f(el1, elems2.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ b += f(el1, elems2.next)
+ else
+ return b.result
+ }
b.result
}
- def flatMap[B, To](f: (El1, El2) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ def flatMap[B, To](f: (El1, El2) => Traversable[B])(implicit cbf: CBF[Repr1, B, To]): To = {
val b = cbf(coll1.repr)
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
- b ++= f(el1, elems2.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ b ++= f(el1, elems2.next)
+ else
+ return b.result
+ }
b.result
}
- def filter[To1, To2](f: (El1, El2) => Boolean)(implicit cbf1: CanBuildFrom[Repr1, El1, To1], cbf2: CanBuildFrom[Repr2, El2, To2]): (To1, To2) = {
+ def filter[To1, To2](f: (El1, El2) => Boolean)(implicit cbf1: CBF[Repr1, El1, To1], cbf2: CBF[Repr2, El2, To2]): (To1, To2) = {
val b1 = cbf1(coll1.repr)
val b2 = cbf2(coll2.repr)
val elems2 = coll2.iterator
- for(el1 <- coll1) {
- if(elems2.hasNext) {
+ for (el1 <- coll1) {
+ if (elems2.hasNext) {
val el2 = elems2.next
- if(f(el1, el2)) {
+ if (f(el1, el2)) {
b1 += el1
b2 += el2
}
}
+ else return (b1.result, b2.result)
}
(b1.result, b2.result)
}
def exists(f: (El1, El2) => Boolean): Boolean = {
- var acc = false
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(!acc && elems2.hasNext)
- acc = f(el1, elems2.next)
-
- acc
+ for (el1 <- coll1) {
+ if (elems2.hasNext) {
+ if (f(el1, elems2.next))
+ return true
+ }
+ else return false
+ }
+ false
}
- def forall(f: (El1, El2) => Boolean): Boolean = {
- var acc = true
- val elems2 = coll2.iterator
-
- for(el1 <- coll1)
- if(acc && elems2.hasNext)
- acc = f(el1, elems2.next)
-
- acc
- }
+ def forall(f: (El1, El2) => Boolean): Boolean =
+ !exists((x, y) => !f(x, y))
def foreach[U](f: (El1, El2) => U): Unit = {
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
- f(el1, elems2.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ f(el1, elems2.next)
+ else
+ return
+ }
}
}
"""
}
object TupleThree extends Tuple(3) {
- override def imports = """
-import scala.collection.{TraversableLike, IterableLike}
-import scala.collection.generic.CanBuildFrom
-"""
+ override def imports = Tuple.zipImports
override def moreMethods = """
- def zip[Repr1, El1, El2, El3, To](implicit w1: T1 => TraversableLike[El1, Repr1],
+ def zip[Repr1, El1, El2, El3, To](implicit w1: T1 => TLike[El1, Repr1],
w2: T2 => Iterable[El2],
w3: T3 => Iterable[El3],
- cbf1: CanBuildFrom[Repr1, (El1, El2, El3), To]): To = {
- val coll1: TraversableLike[El1, Repr1] = _1
+ cbf1: CBF[Repr1, (El1, El2, El3), To]): To = {
+ val coll1: TLike[El1, Repr1] = _1
val coll2: Iterable[El2] = _2
val coll3: Iterable[El3] = _3
val b1 = cbf1(coll1.repr)
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
b1 += ((el1, elems2.next, elems3.next))
+ else
+ return b1.result
+ }
b1.result
}
@@ -427,94 +439,108 @@ import scala.collection.generic.CanBuildFrom
* @see Zipped
* $willNotTerminateInf
*/
- def zipped[Repr1, El1, Repr2, El2, Repr3, El3](implicit w1: T1 => TraversableLike[El1, Repr1],
- w2: T2 => IterableLike[El2, Repr2],
- w3: T3 => IterableLike[El3, Repr3]): Zipped[Repr1, El1, Repr2, El2, Repr3, El3]
+ def zipped[Repr1, El1, Repr2, El2, Repr3, El3](implicit w1: T1 => TLike[El1, Repr1],
+ w2: T2 => ILike[El2, Repr2],
+ w3: T3 => ILike[El3, Repr3]): Zipped[Repr1, El1, Repr2, El2, Repr3, El3]
= new Zipped[Repr1, El1, Repr2, El2, Repr3, El3](_1, _2, _3)
- class Zipped[+Repr1, +El1, +Repr2, +El2, +Repr3, +El3](coll1: TraversableLike[El1, Repr1],
- coll2: IterableLike[El2, Repr2],
- coll3: IterableLike[El3, Repr3]) {
- def map[B, To](f: (El1, El2, El3) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
- val b = cbf(coll1.repr)
- val elems2 = coll2.iterator
- val elems3 = coll3.iterator
-
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
- b += f(el1, elems2.next, elems3.next)
+ class Zipped[+Repr1, +El1, +Repr2, +El2, +Repr3, +El3](coll1: TLike[El1, Repr1],
+ coll2: ILike[El2, Repr2],
+ coll3: ILike[El3, Repr3]) {
+ def map[B, To](f: (El1, El2, El3) => B)(implicit cbf: CBF[Repr1, B, To]): To = {
+ val b = cbf(coll1.repr)
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
- b.result
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
+ b += f(el1, elems2.next, elems3.next)
+ else
+ return b.result
+ }
+ b.result
}
- def flatMap[B, To](f: (El1, El2, El3) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ def flatMap[B, To](f: (El1, El2, El3) => Traversable[B])(implicit cbf: CBF[Repr1, B, To]): To = {
val b = cbf(coll1.repr)
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
- b ++= f(el1, elems2.next, elems3.next)
-
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
+ b ++= f(el1, elems2.next, elems3.next)
+ else
+ return b.result
+ }
b.result
}
def filter[To1, To2, To3](f: (El1, El2, El3) => Boolean)(
- implicit cbf1: CanBuildFrom[Repr1, El1, To1],
- cbf2: CanBuildFrom[Repr2, El2, To2],
- cbf3: CanBuildFrom[Repr3, El3, To3]): (To1, To2, To3) = {
+ implicit cbf1: CBF[Repr1, El1, To1],
+ cbf2: CBF[Repr2, El2, To2],
+ cbf3: CBF[Repr3, El3, To3]): (To1, To2, To3) = {
val b1 = cbf1(coll1.repr)
val b2 = cbf2(coll2.repr)
val b3 = cbf3(coll3.repr)
val elems2 = coll2.iterator
val elems3 = coll3.iterator
+ def result = (b1.result, b2.result, b3.result)
for(el1 <- coll1) {
- if(elems2.hasNext && elems3.hasNext) {
+ if (elems2.hasNext && elems3.hasNext) {
val el2 = elems2.next
val el3 = elems3.next
- if(f(el1, el2, el3)) {
+
+ if (f(el1, el2, el3)) {
b1 += el1
b2 += el2
b3 += el3
}
}
+ else return result
}
- (b1.result, b2.result, b3.result)
+ result
}
def exists(f: (El1, El2, El3) => Boolean): Boolean = {
- var acc = false
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(!acc && elems2.hasNext && elems3.hasNext)
- acc = f(el1, elems2.next, elems3.next)
-
- acc
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext) {
+ if (f(el1, elems2.next, elems3.next))
+ return true
+ }
+ else return false
+ }
+ false
}
- def forall(f: (El1, El2, El3) => Boolean): Boolean = {
- var acc = true
- val elems2 = coll2.iterator
- val elems3 = coll3.iterator
+ def forall(f: (El1, El2, El3) => Boolean): Boolean =
+ !exists((x, y, z) => !f(x, y, z))
- for(el1 <- coll1)
- if(acc && elems2.hasNext && elems3.hasNext)
- acc = f(el1, elems2.next, elems3.next)
+ def foreach[U](f: (El1, El2) => U): Unit = {
+ val elems2 = coll2.iterator
- acc
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ f(el1, elems2.next)
+ else
+ return
+ }
}
def foreach[U](f: (El1, El2, El3) => U): Unit = {
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
- f(el1, elems2.next, elems3.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
+ f(el1, elems2.next, elems3.next)
+ else
+ return
+ }
}
}
"""
diff --git a/src/library/scala/Function0.scala b/src/library/scala/Function0.scala
index af51ca8851..09347783ef 100644
--- a/src/library/scala/Function0.scala
+++ b/src/library/scala/Function0.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with fancy comment)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with fancy comment)
package scala
diff --git a/src/library/scala/Function1.scala b/src/library/scala/Function1.scala
index beac376f4e..38b84025b9 100644
--- a/src/library/scala/Function1.scala
+++ b/src/library/scala/Function1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with fancy comment) (with extra methods)
package scala
@@ -62,4 +62,5 @@ trait Function1[@specialized(scala.Int, scala.Long, scala.Float, scala.Double) -
def isDefinedAt(x: T1): Boolean = Function1.this.apply(x).isDefined
override def lift = Function1.this.asInstanceOf[T1 => Option[R1]]
}
+
}
diff --git a/src/library/scala/Function10.scala b/src/library/scala/Function10.scala
index 11d73d704f..64c5607505 100644
--- a/src/library/scala/Function10.scala
+++ b/src/library/scala/Function10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function11.scala b/src/library/scala/Function11.scala
index f4f5102c3e..18564bdc68 100644
--- a/src/library/scala/Function11.scala
+++ b/src/library/scala/Function11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function12.scala b/src/library/scala/Function12.scala
index d952f571c7..b669f18e8b 100644
--- a/src/library/scala/Function12.scala
+++ b/src/library/scala/Function12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function13.scala b/src/library/scala/Function13.scala
index 4f05319331..1a6da81a57 100644
--- a/src/library/scala/Function13.scala
+++ b/src/library/scala/Function13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function14.scala b/src/library/scala/Function14.scala
index eb17a7ab86..85a069f1aa 100644
--- a/src/library/scala/Function14.scala
+++ b/src/library/scala/Function14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function15.scala b/src/library/scala/Function15.scala
index 3dc448f816..cdde24a450 100644
--- a/src/library/scala/Function15.scala
+++ b/src/library/scala/Function15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function16.scala b/src/library/scala/Function16.scala
index 567fd02c7a..4f4806a9cf 100644
--- a/src/library/scala/Function16.scala
+++ b/src/library/scala/Function16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function17.scala b/src/library/scala/Function17.scala
index 87c956dc90..44676996aa 100644
--- a/src/library/scala/Function17.scala
+++ b/src/library/scala/Function17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function18.scala b/src/library/scala/Function18.scala
index c876413e11..6f74fd69c0 100644
--- a/src/library/scala/Function18.scala
+++ b/src/library/scala/Function18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function19.scala b/src/library/scala/Function19.scala
index 4b96cdd245..f200fd6db1 100644
--- a/src/library/scala/Function19.scala
+++ b/src/library/scala/Function19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function2.scala b/src/library/scala/Function2.scala
index fdc44fc647..545bbb151d 100644
--- a/src/library/scala/Function2.scala
+++ b/src/library/scala/Function2.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with fancy comment) (with extra methods)
package scala
diff --git a/src/library/scala/Function20.scala b/src/library/scala/Function20.scala
index d1cb6d2894..0a99abd4ec 100644
--- a/src/library/scala/Function20.scala
+++ b/src/library/scala/Function20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function21.scala b/src/library/scala/Function21.scala
index c0aecc7c3e..9f99cc0966 100644
--- a/src/library/scala/Function21.scala
+++ b/src/library/scala/Function21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function22.scala b/src/library/scala/Function22.scala
index 6fa78b94f0..6ddf1140e9 100644
--- a/src/library/scala/Function22.scala
+++ b/src/library/scala/Function22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function3.scala b/src/library/scala/Function3.scala
index 58ad87c026..62369583df 100644
--- a/src/library/scala/Function3.scala
+++ b/src/library/scala/Function3.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function4.scala b/src/library/scala/Function4.scala
index 2fbf49d424..0ff2595615 100644
--- a/src/library/scala/Function4.scala
+++ b/src/library/scala/Function4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function5.scala b/src/library/scala/Function5.scala
index 27a55238e7..c2442b2dbf 100644
--- a/src/library/scala/Function5.scala
+++ b/src/library/scala/Function5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function6.scala b/src/library/scala/Function6.scala
index d2d0925f3a..d4f72f68eb 100644
--- a/src/library/scala/Function6.scala
+++ b/src/library/scala/Function6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function7.scala b/src/library/scala/Function7.scala
index 98b6a6501e..c48f9112ff 100644
--- a/src/library/scala/Function7.scala
+++ b/src/library/scala/Function7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function8.scala b/src/library/scala/Function8.scala
index 92ab40606e..bfc57942e1 100644
--- a/src/library/scala/Function8.scala
+++ b/src/library/scala/Function8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function9.scala b/src/library/scala/Function9.scala
index 7b9317190d..af04539fb9 100644
--- a/src/library/scala/Function9.scala
+++ b/src/library/scala/Function9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Predef.scala b/src/library/scala/Predef.scala
index 973e54fa43..bd8f6b6822 100644
--- a/src/library/scala/Predef.scala
+++ b/src/library/scala/Predef.scala
@@ -10,9 +10,10 @@
package scala
-import collection.immutable.StringOps
-import collection.mutable.ArrayOps
-import collection.generic.CanBuildFrom
+import scala.collection.{ mutable, immutable, generic }
+import immutable.StringOps
+import mutable.ArrayOps
+import generic.CanBuildFrom
import annotation.elidable
import annotation.elidable.ASSERTION
@@ -35,10 +36,10 @@ object Predef extends LowPriorityImplicits {
type Function[-A, +B] = Function1[A, B]
- type Map[A, +B] = collection.immutable.Map[A, B]
- type Set[A] = collection.immutable.Set[A]
- val Map = collection.immutable.Map
- val Set = collection.immutable.Set
+ type Map[A, +B] = immutable.Map[A, B]
+ type Set[A] = immutable.Set[A]
+ val Map = immutable.Map
+ val Set = immutable.Set
type Manifest[T] = scala.reflect.Manifest[T]
type ClassManifest[T] = scala.reflect.ClassManifest[T]
@@ -209,6 +210,18 @@ object Predef extends LowPriorityImplicits {
implicit def exceptionWrapper(exc: Throwable) = new runtime.RichException(exc)
+ // tuple zip views
+
+ implicit def zipped2ToTraversable[El1, El2](zz: Tuple2[_, _]#Zipped[_, El1, _, El2]): Traversable[(El1, El2)] =
+ new Traversable[(El1, El2)] {
+ def foreach[U](f: ((El1, El2)) => U): Unit = zz foreach Function.untupled(f)
+ }
+
+ implicit def zipped3ToTraversable[El1, El2, El3](zz: Tuple3[_, _, _]#Zipped[_, El1, _, El2, _, El3]): Traversable[(El1, El2, El3)] =
+ new Traversable[(El1, El2, El3)] {
+ def foreach[U](f: ((El1, El2, El3)) => U): Unit = zz foreach Function.untupled(f)
+ }
+
implicit def genericArrayOps[T](xs: Array[T]): ArrayOps[T] = (xs: AnyRef) match { // !!! drop the AnyRef and get unreachable code errors!
case x: Array[AnyRef] => refArrayOps[AnyRef](x).asInstanceOf[ArrayOps[T]]
case x: Array[Int] => intArrayOps(x).asInstanceOf[ArrayOps[T]]
@@ -290,7 +303,7 @@ object Predef extends LowPriorityImplicits {
implicit def stringCanBuildFrom: CanBuildFrom[String, Char, String] =
new CanBuildFrom[String, Char, String] {
def apply(from: String) = apply()
- def apply() = scala.collection.mutable.StringBuilder.newBuilder
+ def apply() = StringBuilder.newBuilder
}
implicit def seqToCharSequence(xs: collection.IndexedSeq[Char]): CharSequence = new CharSequence {
@@ -320,7 +333,7 @@ object Predef extends LowPriorityImplicits {
* in part contributed by Jason Zaugg
*/
sealed abstract class <:<[-From, +To] extends (From => To)
- implicit def conforms[A]: A <:< A = new (A <:< A) {def apply(x: A) = x}
+ implicit def conforms[A]: A <:< A = new (A <:< A) { def apply(x: A) = x }
// not in the <:< companion object because it is also intended to subsume identity (which is no longer implicit)
/** An instance of `A =:= B` witnesses that the types `A` and `B` are equal.
diff --git a/src/library/scala/Product1.scala b/src/library/scala/Product1.scala
index 2199de22ba..d257b44447 100644
--- a/src/library/scala/Product1.scala
+++ b/src/library/scala/Product1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product10.scala b/src/library/scala/Product10.scala
index d2f6de3775..6a9feab70e 100644
--- a/src/library/scala/Product10.scala
+++ b/src/library/scala/Product10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product11.scala b/src/library/scala/Product11.scala
index 3f685b11a3..604bf8382d 100644
--- a/src/library/scala/Product11.scala
+++ b/src/library/scala/Product11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product12.scala b/src/library/scala/Product12.scala
index fa926f7816..7781d4e84f 100644
--- a/src/library/scala/Product12.scala
+++ b/src/library/scala/Product12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product13.scala b/src/library/scala/Product13.scala
index 75d346e3ec..b75077c811 100644
--- a/src/library/scala/Product13.scala
+++ b/src/library/scala/Product13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product14.scala b/src/library/scala/Product14.scala
index c933518260..bf1014adc6 100644
--- a/src/library/scala/Product14.scala
+++ b/src/library/scala/Product14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product15.scala b/src/library/scala/Product15.scala
index 4a24391dc0..9436a5434b 100644
--- a/src/library/scala/Product15.scala
+++ b/src/library/scala/Product15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product16.scala b/src/library/scala/Product16.scala
index 053e1ab3e6..cb657617e7 100644
--- a/src/library/scala/Product16.scala
+++ b/src/library/scala/Product16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product17.scala b/src/library/scala/Product17.scala
index 118a10163f..a4caf476b1 100644
--- a/src/library/scala/Product17.scala
+++ b/src/library/scala/Product17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product18.scala b/src/library/scala/Product18.scala
index b36c947b0f..47cafe5286 100644
--- a/src/library/scala/Product18.scala
+++ b/src/library/scala/Product18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product19.scala b/src/library/scala/Product19.scala
index 1c5d58208c..9ca00034e0 100644
--- a/src/library/scala/Product19.scala
+++ b/src/library/scala/Product19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product2.scala b/src/library/scala/Product2.scala
index 0fc6bc40d6..720fb1d08e 100644
--- a/src/library/scala/Product2.scala
+++ b/src/library/scala/Product2.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product20.scala b/src/library/scala/Product20.scala
index 47864978b1..02777fc127 100644
--- a/src/library/scala/Product20.scala
+++ b/src/library/scala/Product20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product21.scala b/src/library/scala/Product21.scala
index c53a944886..d784e80ba1 100644
--- a/src/library/scala/Product21.scala
+++ b/src/library/scala/Product21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product22.scala b/src/library/scala/Product22.scala
index 02279303cd..208f3d2912 100644
--- a/src/library/scala/Product22.scala
+++ b/src/library/scala/Product22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product3.scala b/src/library/scala/Product3.scala
index eb1ac7997c..c695b2c6c5 100644
--- a/src/library/scala/Product3.scala
+++ b/src/library/scala/Product3.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product4.scala b/src/library/scala/Product4.scala
index 582028f2e0..d26e2a54e8 100644
--- a/src/library/scala/Product4.scala
+++ b/src/library/scala/Product4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product5.scala b/src/library/scala/Product5.scala
index 3f55bb109f..42bc69b8c3 100644
--- a/src/library/scala/Product5.scala
+++ b/src/library/scala/Product5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product6.scala b/src/library/scala/Product6.scala
index 4d17b5cc42..a24268ecd7 100644
--- a/src/library/scala/Product6.scala
+++ b/src/library/scala/Product6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product7.scala b/src/library/scala/Product7.scala
index 4f3e401da4..a295a24c78 100644
--- a/src/library/scala/Product7.scala
+++ b/src/library/scala/Product7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product8.scala b/src/library/scala/Product8.scala
index 5ed5f178b7..a7ee297bef 100644
--- a/src/library/scala/Product8.scala
+++ b/src/library/scala/Product8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Product9.scala b/src/library/scala/Product9.scala
index 62e4586d80..c0e5d64142 100644
--- a/src/library/scala/Product9.scala
+++ b/src/library/scala/Product9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple1.scala b/src/library/scala/Tuple1.scala
index 02ff079c7d..698173948b 100644
--- a/src/library/scala/Tuple1.scala
+++ b/src/library/scala/Tuple1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple10.scala b/src/library/scala/Tuple10.scala
index f8c1e20da9..5fafadc526 100644
--- a/src/library/scala/Tuple10.scala
+++ b/src/library/scala/Tuple10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple11.scala b/src/library/scala/Tuple11.scala
index b655f67f23..f33460c90b 100644
--- a/src/library/scala/Tuple11.scala
+++ b/src/library/scala/Tuple11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple12.scala b/src/library/scala/Tuple12.scala
index f99a6795d6..8df5601426 100644
--- a/src/library/scala/Tuple12.scala
+++ b/src/library/scala/Tuple12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple13.scala b/src/library/scala/Tuple13.scala
index 064f2d6352..3c4b6bdeac 100644
--- a/src/library/scala/Tuple13.scala
+++ b/src/library/scala/Tuple13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple14.scala b/src/library/scala/Tuple14.scala
index fa021dc1c7..f16b46cce9 100644
--- a/src/library/scala/Tuple14.scala
+++ b/src/library/scala/Tuple14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple15.scala b/src/library/scala/Tuple15.scala
index 6e4184c750..503f131165 100644
--- a/src/library/scala/Tuple15.scala
+++ b/src/library/scala/Tuple15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple16.scala b/src/library/scala/Tuple16.scala
index fcf2d010bf..46398884ee 100644
--- a/src/library/scala/Tuple16.scala
+++ b/src/library/scala/Tuple16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple17.scala b/src/library/scala/Tuple17.scala
index f14c9e1554..63516930fe 100644
--- a/src/library/scala/Tuple17.scala
+++ b/src/library/scala/Tuple17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple18.scala b/src/library/scala/Tuple18.scala
index 62cb68e154..aacc6db44a 100644
--- a/src/library/scala/Tuple18.scala
+++ b/src/library/scala/Tuple18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple19.scala b/src/library/scala/Tuple19.scala
index 22ada79d0d..3ff60e5fea 100644
--- a/src/library/scala/Tuple19.scala
+++ b/src/library/scala/Tuple19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple2.scala b/src/library/scala/Tuple2.scala
index 9948206329..460dd0e6aa 100644
--- a/src/library/scala/Tuple2.scala
+++ b/src/library/scala/Tuple2.scala
@@ -7,12 +7,12 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
-import scala.collection.{TraversableLike, IterableLike}
-import scala.collection.generic.CanBuildFrom
+import scala.collection.{ TraversableLike => TLike, IterableLike => ILike }
+import scala.collection.generic.{ CanBuildFrom => CBF }
@@ -28,17 +28,20 @@ case class Tuple2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, D
/** Swap the elements of the tuple */
def swap: Tuple2[T2,T1] = Tuple2(_2, _1)
- def zip[Repr1, El1, El2, To](implicit w1: T1 => TraversableLike[El1, Repr1],
+ def zip[Repr1, El1, El2, To](implicit w1: T1 => TLike[El1, Repr1],
w2: T2 => Iterable[El2],
- cbf1: CanBuildFrom[Repr1, (El1, El2), To]): To = {
- val coll1: TraversableLike[El1, Repr1] = _1
+ cbf1: CBF[Repr1, (El1, El2), To]): To = {
+ val coll1: TLike[El1, Repr1] = _1
val coll2: Iterable[El2] = _2
val b1 = cbf1(coll1.repr)
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
b1 += ((el1, elems2.next))
+ else
+ return b1.result
+ }
b1.result
}
@@ -48,79 +51,83 @@ case class Tuple2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, D
* @see Zipped
* $willNotTerminateInf
*/
- def zipped[Repr1, El1, Repr2, El2](implicit w1: T1 => TraversableLike[El1, Repr1], w2: T2 => IterableLike[El2, Repr2]): Zipped[Repr1, El1, Repr2, El2]
+ def zipped[Repr1, El1, Repr2, El2](implicit w1: T1 => TLike[El1, Repr1], w2: T2 => ILike[El2, Repr2]): Zipped[Repr1, El1, Repr2, El2]
= new Zipped[Repr1, El1, Repr2, El2](_1, _2)
- class Zipped[+Repr1, +El1, +Repr2, +El2](coll1: TraversableLike[El1, Repr1], coll2: IterableLike[El2, Repr2]) { // coll2: IterableLike for filter
- def map[B, To](f: (El1, El2) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ class Zipped[+Repr1, +El1, +Repr2, +El2](coll1: TLike[El1, Repr1], coll2: ILike[El2, Repr2]) { // coll2: ILike for filter
+ def map[B, To](f: (El1, El2) => B)(implicit cbf: CBF[Repr1, B, To]): To = {
val b = cbf(coll1.repr)
b.sizeHint(coll1)
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
- b += f(el1, elems2.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ b += f(el1, elems2.next)
+ else
+ return b.result
+ }
b.result
}
- def flatMap[B, To](f: (El1, El2) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ def flatMap[B, To](f: (El1, El2) => Traversable[B])(implicit cbf: CBF[Repr1, B, To]): To = {
val b = cbf(coll1.repr)
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
- b ++= f(el1, elems2.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ b ++= f(el1, elems2.next)
+ else
+ return b.result
+ }
b.result
}
- def filter[To1, To2](f: (El1, El2) => Boolean)(implicit cbf1: CanBuildFrom[Repr1, El1, To1], cbf2: CanBuildFrom[Repr2, El2, To2]): (To1, To2) = {
+ def filter[To1, To2](f: (El1, El2) => Boolean)(implicit cbf1: CBF[Repr1, El1, To1], cbf2: CBF[Repr2, El2, To2]): (To1, To2) = {
val b1 = cbf1(coll1.repr)
val b2 = cbf2(coll2.repr)
val elems2 = coll2.iterator
- for(el1 <- coll1) {
- if(elems2.hasNext) {
+ for (el1 <- coll1) {
+ if (elems2.hasNext) {
val el2 = elems2.next
- if(f(el1, el2)) {
+ if (f(el1, el2)) {
b1 += el1
b2 += el2
}
}
+ else return (b1.result, b2.result)
}
(b1.result, b2.result)
}
def exists(f: (El1, El2) => Boolean): Boolean = {
- var acc = false
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(!acc && elems2.hasNext)
- acc = f(el1, elems2.next)
-
- acc
+ for (el1 <- coll1) {
+ if (elems2.hasNext) {
+ if (f(el1, elems2.next))
+ return true
+ }
+ else return false
+ }
+ false
}
- def forall(f: (El1, El2) => Boolean): Boolean = {
- var acc = true
- val elems2 = coll2.iterator
-
- for(el1 <- coll1)
- if(acc && elems2.hasNext)
- acc = f(el1, elems2.next)
-
- acc
- }
+ def forall(f: (El1, El2) => Boolean): Boolean =
+ !exists((x, y) => !f(x, y))
def foreach[U](f: (El1, El2) => U): Unit = {
val elems2 = coll2.iterator
- for(el1 <- coll1)
- if(elems2.hasNext)
- f(el1, elems2.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ f(el1, elems2.next)
+ else
+ return
+ }
}
}
diff --git a/src/library/scala/Tuple20.scala b/src/library/scala/Tuple20.scala
index ed26f3d8ce..3affc1fdf9 100644
--- a/src/library/scala/Tuple20.scala
+++ b/src/library/scala/Tuple20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple21.scala b/src/library/scala/Tuple21.scala
index 3242c86ebf..26c72f1a83 100644
--- a/src/library/scala/Tuple21.scala
+++ b/src/library/scala/Tuple21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple22.scala b/src/library/scala/Tuple22.scala
index 4fbe298483..05fbefb7fb 100644
--- a/src/library/scala/Tuple22.scala
+++ b/src/library/scala/Tuple22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple3.scala b/src/library/scala/Tuple3.scala
index 47d6bfac22..876475c2e3 100644
--- a/src/library/scala/Tuple3.scala
+++ b/src/library/scala/Tuple3.scala
@@ -7,12 +7,12 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010 (with extra methods)
package scala
-import scala.collection.{TraversableLike, IterableLike}
-import scala.collection.generic.CanBuildFrom
+import scala.collection.{ TraversableLike => TLike, IterableLike => ILike }
+import scala.collection.generic.{ CanBuildFrom => CBF }
@@ -25,20 +25,23 @@ case class Tuple3[+T1, +T2, +T3](_1:T1,_2:T2,_3:T3)
{
override def toString() = "(" + _1 + "," + _2 + "," + _3 + ")"
- def zip[Repr1, El1, El2, El3, To](implicit w1: T1 => TraversableLike[El1, Repr1],
+ def zip[Repr1, El1, El2, El3, To](implicit w1: T1 => TLike[El1, Repr1],
w2: T2 => Iterable[El2],
w3: T3 => Iterable[El3],
- cbf1: CanBuildFrom[Repr1, (El1, El2, El3), To]): To = {
- val coll1: TraversableLike[El1, Repr1] = _1
+ cbf1: CBF[Repr1, (El1, El2, El3), To]): To = {
+ val coll1: TLike[El1, Repr1] = _1
val coll2: Iterable[El2] = _2
val coll3: Iterable[El3] = _3
val b1 = cbf1(coll1.repr)
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
b1 += ((el1, elems2.next, elems3.next))
+ else
+ return b1.result
+ }
b1.result
}
@@ -48,94 +51,108 @@ case class Tuple3[+T1, +T2, +T3](_1:T1,_2:T2,_3:T3)
* @see Zipped
* $willNotTerminateInf
*/
- def zipped[Repr1, El1, Repr2, El2, Repr3, El3](implicit w1: T1 => TraversableLike[El1, Repr1],
- w2: T2 => IterableLike[El2, Repr2],
- w3: T3 => IterableLike[El3, Repr3]): Zipped[Repr1, El1, Repr2, El2, Repr3, El3]
+ def zipped[Repr1, El1, Repr2, El2, Repr3, El3](implicit w1: T1 => TLike[El1, Repr1],
+ w2: T2 => ILike[El2, Repr2],
+ w3: T3 => ILike[El3, Repr3]): Zipped[Repr1, El1, Repr2, El2, Repr3, El3]
= new Zipped[Repr1, El1, Repr2, El2, Repr3, El3](_1, _2, _3)
- class Zipped[+Repr1, +El1, +Repr2, +El2, +Repr3, +El3](coll1: TraversableLike[El1, Repr1],
- coll2: IterableLike[El2, Repr2],
- coll3: IterableLike[El3, Repr3]) {
- def map[B, To](f: (El1, El2, El3) => B)(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
- val b = cbf(coll1.repr)
- val elems2 = coll2.iterator
- val elems3 = coll3.iterator
-
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
- b += f(el1, elems2.next, elems3.next)
+ class Zipped[+Repr1, +El1, +Repr2, +El2, +Repr3, +El3](coll1: TLike[El1, Repr1],
+ coll2: ILike[El2, Repr2],
+ coll3: ILike[El3, Repr3]) {
+ def map[B, To](f: (El1, El2, El3) => B)(implicit cbf: CBF[Repr1, B, To]): To = {
+ val b = cbf(coll1.repr)
+ val elems2 = coll2.iterator
+ val elems3 = coll3.iterator
- b.result
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
+ b += f(el1, elems2.next, elems3.next)
+ else
+ return b.result
+ }
+ b.result
}
- def flatMap[B, To](f: (El1, El2, El3) => Traversable[B])(implicit cbf: CanBuildFrom[Repr1, B, To]): To = {
+ def flatMap[B, To](f: (El1, El2, El3) => Traversable[B])(implicit cbf: CBF[Repr1, B, To]): To = {
val b = cbf(coll1.repr)
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
- b ++= f(el1, elems2.next, elems3.next)
-
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
+ b ++= f(el1, elems2.next, elems3.next)
+ else
+ return b.result
+ }
b.result
}
def filter[To1, To2, To3](f: (El1, El2, El3) => Boolean)(
- implicit cbf1: CanBuildFrom[Repr1, El1, To1],
- cbf2: CanBuildFrom[Repr2, El2, To2],
- cbf3: CanBuildFrom[Repr3, El3, To3]): (To1, To2, To3) = {
+ implicit cbf1: CBF[Repr1, El1, To1],
+ cbf2: CBF[Repr2, El2, To2],
+ cbf3: CBF[Repr3, El3, To3]): (To1, To2, To3) = {
val b1 = cbf1(coll1.repr)
val b2 = cbf2(coll2.repr)
val b3 = cbf3(coll3.repr)
val elems2 = coll2.iterator
val elems3 = coll3.iterator
+ def result = (b1.result, b2.result, b3.result)
for(el1 <- coll1) {
- if(elems2.hasNext && elems3.hasNext) {
+ if (elems2.hasNext && elems3.hasNext) {
val el2 = elems2.next
val el3 = elems3.next
- if(f(el1, el2, el3)) {
+
+ if (f(el1, el2, el3)) {
b1 += el1
b2 += el2
b3 += el3
}
}
+ else return result
}
- (b1.result, b2.result, b3.result)
+ result
}
def exists(f: (El1, El2, El3) => Boolean): Boolean = {
- var acc = false
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(!acc && elems2.hasNext && elems3.hasNext)
- acc = f(el1, elems2.next, elems3.next)
-
- acc
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext) {
+ if (f(el1, elems2.next, elems3.next))
+ return true
+ }
+ else return false
+ }
+ false
}
- def forall(f: (El1, El2, El3) => Boolean): Boolean = {
- var acc = true
- val elems2 = coll2.iterator
- val elems3 = coll3.iterator
+ def forall(f: (El1, El2, El3) => Boolean): Boolean =
+ !exists((x, y, z) => !f(x, y, z))
- for(el1 <- coll1)
- if(acc && elems2.hasNext && elems3.hasNext)
- acc = f(el1, elems2.next, elems3.next)
+ def foreach[U](f: (El1, El2) => U): Unit = {
+ val elems2 = coll2.iterator
- acc
+ for (el1 <- coll1) {
+ if (elems2.hasNext)
+ f(el1, elems2.next)
+ else
+ return
+ }
}
def foreach[U](f: (El1, El2, El3) => U): Unit = {
val elems2 = coll2.iterator
val elems3 = coll3.iterator
- for(el1 <- coll1)
- if(elems2.hasNext && elems3.hasNext)
- f(el1, elems2.next, elems3.next)
+ for (el1 <- coll1) {
+ if (elems2.hasNext && elems3.hasNext)
+ f(el1, elems2.next, elems3.next)
+ else
+ return
+ }
}
}
diff --git a/src/library/scala/Tuple4.scala b/src/library/scala/Tuple4.scala
index 74bd38b6ab..8590314db6 100644
--- a/src/library/scala/Tuple4.scala
+++ b/src/library/scala/Tuple4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple5.scala b/src/library/scala/Tuple5.scala
index d8e4eff9d9..3ac931f9b5 100644
--- a/src/library/scala/Tuple5.scala
+++ b/src/library/scala/Tuple5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple6.scala b/src/library/scala/Tuple6.scala
index a59416fdbf..089a394bb3 100644
--- a/src/library/scala/Tuple6.scala
+++ b/src/library/scala/Tuple6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple7.scala b/src/library/scala/Tuple7.scala
index 25f3aa85a4..24a29c5207 100644
--- a/src/library/scala/Tuple7.scala
+++ b/src/library/scala/Tuple7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple8.scala b/src/library/scala/Tuple8.scala
index 3389287627..59b6c3d679 100644
--- a/src/library/scala/Tuple8.scala
+++ b/src/library/scala/Tuple8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/Tuple9.scala b/src/library/scala/Tuple9.scala
index 0eb3664834..579ecc8577 100644
--- a/src/library/scala/Tuple9.scala
+++ b/src/library/scala/Tuple9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala
diff --git a/src/library/scala/package.scala b/src/library/scala/package.scala
index 9531572321..69966d003b 100644
--- a/src/library/scala/package.scala
+++ b/src/library/scala/package.scala
@@ -63,6 +63,7 @@ package object scala {
val Vector = scala.collection.immutable.Vector
type StringBuilder = scala.collection.mutable.StringBuilder
+ val StringBuilder = scala.collection.mutable.StringBuilder
type Range = scala.collection.immutable.Range
val Range = scala.collection.immutable.Range
diff --git a/src/library/scala/runtime/AbstractFunction0.scala b/src/library/scala/runtime/AbstractFunction0.scala
index 974e122a8f..f7e636e081 100644
--- a/src/library/scala/runtime/AbstractFunction0.scala
+++ b/src/library/scala/runtime/AbstractFunction0.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction1.scala b/src/library/scala/runtime/AbstractFunction1.scala
index 238ef87e74..dc57ae5841 100644
--- a/src/library/scala/runtime/AbstractFunction1.scala
+++ b/src/library/scala/runtime/AbstractFunction1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction10.scala b/src/library/scala/runtime/AbstractFunction10.scala
index dda05ebae2..2dc6291abd 100644
--- a/src/library/scala/runtime/AbstractFunction10.scala
+++ b/src/library/scala/runtime/AbstractFunction10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction11.scala b/src/library/scala/runtime/AbstractFunction11.scala
index c6ca9c67a5..926d009c08 100644
--- a/src/library/scala/runtime/AbstractFunction11.scala
+++ b/src/library/scala/runtime/AbstractFunction11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction12.scala b/src/library/scala/runtime/AbstractFunction12.scala
index c391b38461..21d1ea08fb 100644
--- a/src/library/scala/runtime/AbstractFunction12.scala
+++ b/src/library/scala/runtime/AbstractFunction12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction13.scala b/src/library/scala/runtime/AbstractFunction13.scala
index 32fa820001..a152eb1a77 100644
--- a/src/library/scala/runtime/AbstractFunction13.scala
+++ b/src/library/scala/runtime/AbstractFunction13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction14.scala b/src/library/scala/runtime/AbstractFunction14.scala
index fec1247a08..578057cc75 100644
--- a/src/library/scala/runtime/AbstractFunction14.scala
+++ b/src/library/scala/runtime/AbstractFunction14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction15.scala b/src/library/scala/runtime/AbstractFunction15.scala
index a41cf47d7b..5504c64239 100644
--- a/src/library/scala/runtime/AbstractFunction15.scala
+++ b/src/library/scala/runtime/AbstractFunction15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction16.scala b/src/library/scala/runtime/AbstractFunction16.scala
index f6d92f1209..a2a5b9c442 100644
--- a/src/library/scala/runtime/AbstractFunction16.scala
+++ b/src/library/scala/runtime/AbstractFunction16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction17.scala b/src/library/scala/runtime/AbstractFunction17.scala
index f76e2d0a89..0d44cb263c 100644
--- a/src/library/scala/runtime/AbstractFunction17.scala
+++ b/src/library/scala/runtime/AbstractFunction17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction18.scala b/src/library/scala/runtime/AbstractFunction18.scala
index cf0b67dff6..701d928b49 100644
--- a/src/library/scala/runtime/AbstractFunction18.scala
+++ b/src/library/scala/runtime/AbstractFunction18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction19.scala b/src/library/scala/runtime/AbstractFunction19.scala
index 54d1fb9b7e..4360f43845 100644
--- a/src/library/scala/runtime/AbstractFunction19.scala
+++ b/src/library/scala/runtime/AbstractFunction19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction2.scala b/src/library/scala/runtime/AbstractFunction2.scala
index 45d81290db..8be9909fef 100644
--- a/src/library/scala/runtime/AbstractFunction2.scala
+++ b/src/library/scala/runtime/AbstractFunction2.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction20.scala b/src/library/scala/runtime/AbstractFunction20.scala
index 6e5dd4ef41..0bff861cc4 100644
--- a/src/library/scala/runtime/AbstractFunction20.scala
+++ b/src/library/scala/runtime/AbstractFunction20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction21.scala b/src/library/scala/runtime/AbstractFunction21.scala
index e0c20644c3..39daaab700 100644
--- a/src/library/scala/runtime/AbstractFunction21.scala
+++ b/src/library/scala/runtime/AbstractFunction21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction22.scala b/src/library/scala/runtime/AbstractFunction22.scala
index 30aaafecc6..ed68e3cc4e 100644
--- a/src/library/scala/runtime/AbstractFunction22.scala
+++ b/src/library/scala/runtime/AbstractFunction22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction3.scala b/src/library/scala/runtime/AbstractFunction3.scala
index 78686e5b7f..66aef7e3d3 100644
--- a/src/library/scala/runtime/AbstractFunction3.scala
+++ b/src/library/scala/runtime/AbstractFunction3.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction4.scala b/src/library/scala/runtime/AbstractFunction4.scala
index 4e4a57d984..d09df303d9 100644
--- a/src/library/scala/runtime/AbstractFunction4.scala
+++ b/src/library/scala/runtime/AbstractFunction4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction5.scala b/src/library/scala/runtime/AbstractFunction5.scala
index ce8bbe5710..28b7c6bc44 100644
--- a/src/library/scala/runtime/AbstractFunction5.scala
+++ b/src/library/scala/runtime/AbstractFunction5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction6.scala b/src/library/scala/runtime/AbstractFunction6.scala
index 74ca01b581..d50930b34a 100644
--- a/src/library/scala/runtime/AbstractFunction6.scala
+++ b/src/library/scala/runtime/AbstractFunction6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction7.scala b/src/library/scala/runtime/AbstractFunction7.scala
index fcd01598d7..78e0336006 100644
--- a/src/library/scala/runtime/AbstractFunction7.scala
+++ b/src/library/scala/runtime/AbstractFunction7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction8.scala b/src/library/scala/runtime/AbstractFunction8.scala
index 8ba94b9bee..d449eecdc5 100644
--- a/src/library/scala/runtime/AbstractFunction8.scala
+++ b/src/library/scala/runtime/AbstractFunction8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction9.scala b/src/library/scala/runtime/AbstractFunction9.scala
index c96770762b..17129f9453 100644
--- a/src/library/scala/runtime/AbstractFunction9.scala
+++ b/src/library/scala/runtime/AbstractFunction9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
+// generated by genprod on Thu Sep 16 10:52:35 PDT 2010
package scala.runtime
diff --git a/test/files/pos/t2673.scala b/test/files/pos/t2673.scala
deleted file mode 100644
index 7f232df3f5..0000000000
--- a/test/files/pos/t2673.scala
+++ /dev/null
@@ -1,4 +0,0 @@
-object Test {
- val xs = Array(1, 2, 3)
- (xs, xs).zipped map (_ + _)
-} \ No newline at end of file
diff --git a/test/files/run/tuple-zipped.scala b/test/files/run/tuple-zipped.scala
new file mode 100644
index 0000000000..8f482dc3bf
--- /dev/null
+++ b/test/files/run/tuple-zipped.scala
@@ -0,0 +1,39 @@
+object Test {
+ val xs1 = List.range(1, 100)
+ val xs2 = xs1.view
+ val xs3 = xs1 take 10
+ val ss1 = Stream from 1
+ val ss2 = ss1.view
+ val ss3 = ss1 take 10
+ val as1 = 1 to 100 toArray
+ val as2 = as1.view
+ val as3 = as1 take 10
+
+ def xss1 = List[Seq[Int]](xs1, xs2, xs3, ss1, ss2, ss3, as1, as2, as3)
+ def xss2 = List[Seq[Int]](xs1, xs2, xs3, ss3, as1, as2, as3) // no infinities
+ def xss3 = List[Seq[Int]](xs2, xs3, ss3, as1) // representative sampling
+
+ def main(args: Array[String]): Unit = {
+ for (cc1 <- xss1 ; cc2 <- xss2) {
+ val sum1 = (cc1, cc2).zip map { case (x, y) => x + y } sum
+ val sum2 = (cc1, cc2).zipped map (_ + _) sum
+
+ assert(sum1 == sum2)
+ }
+
+ for (cc1 <- xss1 ; cc2 <- xss2 ; cc3 <- xss3) {
+ val sum1 = (cc1, cc2, cc3).zip map { case (x, y, z) => x + y + z } sum
+ val sum2 = (cc1, cc2, cc3).zipped map (_ + _ + _) sum
+
+ assert(sum1 == sum2)
+ }
+
+ assert((ss1, ss1).zipped exists ((x, y) => true))
+ assert((ss1, ss1, ss1).zipped exists ((x, y, z) => true))
+
+ assert(!(ss1, ss2, 1 to 3).zipped.exists(_ + _ + _ > 100000))
+ assert((1 to 3, ss1, ss2).zipped.forall(_ + _ + _ > 0))
+ assert((ss1, 1 to 3, ss2).zipped.map(_ + _ + _).size == 3)
+ }
+}
+