summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
+ }
+}
+