summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-09-09 17:05:40 +0000
committerPaul Phillips <paulp@improving.org>2010-09-09 17:05:40 +0000
commitaab959bbe2263962add5da425a312b1ea209692f (patch)
tree94f2b8d4779344645e924f015c3ebc450097d744
parent5a150395e7a3ff7e2795a044ae302702a2e0c904 (diff)
downloadscala-aab959bbe2263962add5da425a312b1ea209692f.tar.gz
scala-aab959bbe2263962add5da425a312b1ea209692f.tar.bz2
scala-aab959bbe2263962add5da425a312b1ea209692f.zip
Proposed implementation of 'unlift' on Function...
Proposed implementation of 'unlift' on Function1, the inverse function of PartialFunction#lift. Review by rytz and other interested parties. References #3825, but not closing until this is further considered.
-rw-r--r--src/build/genprod.scala13
-rw-r--r--src/library/scala/Function0.scala2
-rw-r--r--src/library/scala/Function1.scala17
-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/PartialFunction.scala7
-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.scala5
-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.scala2
-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/runtime/AbstractFunction0.scala3
-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/run/lift-and-unlift.scala25
93 files changed, 151 insertions, 93 deletions
diff --git a/src/build/genprod.scala b/src/build/genprod.scala
index 5d47b0317e..6849206f3c 100644
--- a/src/build/genprod.scala
+++ b/src/build/genprod.scala
@@ -153,6 +153,18 @@ object FunctionOne extends Function(1) {
/** (f andThen g)(x) == g(f(x))
*/
def andThen[A](g: R => A): T1 => A = { x => g(apply(x)) }
+
+ /** Turns a function A => Option[B] into a PartialFunction[A, B].
+ * @see PartialFunction#lift
+ * @return a partial function which is defined for those inputs
+ * where this function returns Some(_) and undefined where
+ * this function returns None.
+ */
+ def unlift[R1](implicit ev: R <:< Option[R1]): PartialFunction[T1, R1] = new PartialFunction[T1, R1] {
+ def apply(x: T1): R1 = ev(Function1.this.apply(x)).get
+ def isDefinedAt(x: T1): Boolean = Function1.this.apply(x).isDefined
+ override def lift = Function1.this.asInstanceOf[T1 => Option[R1]]
+ }
"""
}
@@ -314,6 +326,7 @@ import scala.collection.generic.CanBuildFrom
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 = {
val b = cbf(coll1.repr)
+ b.sizeHint(coll1)
val elems2 = coll2.iterator
for(el1 <- coll1)
diff --git a/src/library/scala/Function0.scala b/src/library/scala/Function0.scala
index c6f81064b6..af51ca8851 100644
--- a/src/library/scala/Function0.scala
+++ b/src/library/scala/Function0.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with fancy comment)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with fancy comment)
package scala
diff --git a/src/library/scala/Function1.scala b/src/library/scala/Function1.scala
index a6a6fa2828..beac376f4e 100644
--- a/src/library/scala/Function1.scala
+++ b/src/library/scala/Function1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with fancy comment) (with extra methods)
package scala
@@ -47,4 +47,19 @@ trait Function1[@specialized(scala.Int, scala.Long, scala.Float, scala.Double) -
*/
def andThen[A](g: R => A): T1 => A = { x => g(apply(x)) }
+ /** 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
+ * this function returns None.
+ */
+ def unlift[R1](implicit ev: R <:< Option[R1]): PartialFunction[T1, R1] = new PartialFunction[T1, R1] {
+ def apply(x: T1): R1 = ev(Function1.this.apply(x)).get
+ 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 c009fb5c48..11d73d704f 100644
--- a/src/library/scala/Function10.scala
+++ b/src/library/scala/Function10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function11.scala b/src/library/scala/Function11.scala
index 3c3c79db3a..f4f5102c3e 100644
--- a/src/library/scala/Function11.scala
+++ b/src/library/scala/Function11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function12.scala b/src/library/scala/Function12.scala
index 3cb2d4bb6f..d952f571c7 100644
--- a/src/library/scala/Function12.scala
+++ b/src/library/scala/Function12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function13.scala b/src/library/scala/Function13.scala
index 5ec61d86fc..4f05319331 100644
--- a/src/library/scala/Function13.scala
+++ b/src/library/scala/Function13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function14.scala b/src/library/scala/Function14.scala
index 8624464f48..eb17a7ab86 100644
--- a/src/library/scala/Function14.scala
+++ b/src/library/scala/Function14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function15.scala b/src/library/scala/Function15.scala
index beeaa0b55e..3dc448f816 100644
--- a/src/library/scala/Function15.scala
+++ b/src/library/scala/Function15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function16.scala b/src/library/scala/Function16.scala
index 43ffcee0f3..567fd02c7a 100644
--- a/src/library/scala/Function16.scala
+++ b/src/library/scala/Function16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function17.scala b/src/library/scala/Function17.scala
index 1bd5532f7d..87c956dc90 100644
--- a/src/library/scala/Function17.scala
+++ b/src/library/scala/Function17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function18.scala b/src/library/scala/Function18.scala
index 31641d9496..c876413e11 100644
--- a/src/library/scala/Function18.scala
+++ b/src/library/scala/Function18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function19.scala b/src/library/scala/Function19.scala
index 92d855666e..4b96cdd245 100644
--- a/src/library/scala/Function19.scala
+++ b/src/library/scala/Function19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function2.scala b/src/library/scala/Function2.scala
index 334cc530bc..fdc44fc647 100644
--- a/src/library/scala/Function2.scala
+++ b/src/library/scala/Function2.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with fancy comment) (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 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 f3ddc31474..d1cb6d2894 100644
--- a/src/library/scala/Function20.scala
+++ b/src/library/scala/Function20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function21.scala b/src/library/scala/Function21.scala
index dcb500732f..c0aecc7c3e 100644
--- a/src/library/scala/Function21.scala
+++ b/src/library/scala/Function21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function22.scala b/src/library/scala/Function22.scala
index 9e3f3c9f8f..6fa78b94f0 100644
--- a/src/library/scala/Function22.scala
+++ b/src/library/scala/Function22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function3.scala b/src/library/scala/Function3.scala
index 2afc6acd4c..58ad87c026 100644
--- a/src/library/scala/Function3.scala
+++ b/src/library/scala/Function3.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function4.scala b/src/library/scala/Function4.scala
index c0708d8c06..2fbf49d424 100644
--- a/src/library/scala/Function4.scala
+++ b/src/library/scala/Function4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function5.scala b/src/library/scala/Function5.scala
index 0c318f6317..27a55238e7 100644
--- a/src/library/scala/Function5.scala
+++ b/src/library/scala/Function5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function6.scala b/src/library/scala/Function6.scala
index 0e77fbd2ce..d2d0925f3a 100644
--- a/src/library/scala/Function6.scala
+++ b/src/library/scala/Function6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function7.scala b/src/library/scala/Function7.scala
index 4cfdf1962a..98b6a6501e 100644
--- a/src/library/scala/Function7.scala
+++ b/src/library/scala/Function7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function8.scala b/src/library/scala/Function8.scala
index 92d7f217fd..92ab40606e 100644
--- a/src/library/scala/Function8.scala
+++ b/src/library/scala/Function8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Function9.scala b/src/library/scala/Function9.scala
index 0223ac57f7..7b9317190d 100644
--- a/src/library/scala/Function9.scala
+++ b/src/library/scala/Function9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/PartialFunction.scala b/src/library/scala/PartialFunction.scala
index 41c2ac70e7..f20fb2cf51 100644
--- a/src/library/scala/PartialFunction.scala
+++ b/src/library/scala/PartialFunction.scala
@@ -59,10 +59,15 @@ trait PartialFunction[-A, +B] extends (A => B) {
}
/** Turns this partial function into an plain function returning an `Option` result.
+ * @see Function1#unlift
* @return a function that takes an argument `x` to `Some(this(x))` if `this`
* is defined for `x`, and to `None` otherwise.
*/
- def lift: A => Option[B] = { x => if (isDefinedAt(x)) Some(this(x)) else None }
+ def lift: A => Option[B] = new (A => Option[B]) {
+ def apply(x: A): Option[B] = if (isDefinedAt(x)) Some(PartialFunction.this.apply(x)) else None
+ override def unlift[R1](implicit ev: Option[B] <:< Option[R1]): PartialFunction[A, R1] =
+ PartialFunction.this.asInstanceOf[PartialFunction[A, R1]]
+ }
}
/** A few handy operations which leverage the extra bit of information
diff --git a/src/library/scala/Product1.scala b/src/library/scala/Product1.scala
index f90d720c33..2199de22ba 100644
--- a/src/library/scala/Product1.scala
+++ b/src/library/scala/Product1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product10.scala b/src/library/scala/Product10.scala
index 3cdcaf190c..d2f6de3775 100644
--- a/src/library/scala/Product10.scala
+++ b/src/library/scala/Product10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product11.scala b/src/library/scala/Product11.scala
index 20004258dc..3f685b11a3 100644
--- a/src/library/scala/Product11.scala
+++ b/src/library/scala/Product11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product12.scala b/src/library/scala/Product12.scala
index 0f069a2973..fa926f7816 100644
--- a/src/library/scala/Product12.scala
+++ b/src/library/scala/Product12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product13.scala b/src/library/scala/Product13.scala
index 5abae53eae..75d346e3ec 100644
--- a/src/library/scala/Product13.scala
+++ b/src/library/scala/Product13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product14.scala b/src/library/scala/Product14.scala
index 818d80ae04..c933518260 100644
--- a/src/library/scala/Product14.scala
+++ b/src/library/scala/Product14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product15.scala b/src/library/scala/Product15.scala
index e36985614d..4a24391dc0 100644
--- a/src/library/scala/Product15.scala
+++ b/src/library/scala/Product15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product16.scala b/src/library/scala/Product16.scala
index 6881b33227..053e1ab3e6 100644
--- a/src/library/scala/Product16.scala
+++ b/src/library/scala/Product16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product17.scala b/src/library/scala/Product17.scala
index 727c90c0fc..118a10163f 100644
--- a/src/library/scala/Product17.scala
+++ b/src/library/scala/Product17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product18.scala b/src/library/scala/Product18.scala
index 4f05b54a08..b36c947b0f 100644
--- a/src/library/scala/Product18.scala
+++ b/src/library/scala/Product18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product19.scala b/src/library/scala/Product19.scala
index ada6f9e950..1c5d58208c 100644
--- a/src/library/scala/Product19.scala
+++ b/src/library/scala/Product19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product2.scala b/src/library/scala/Product2.scala
index 9811a7b110..0fc6bc40d6 100644
--- a/src/library/scala/Product2.scala
+++ b/src/library/scala/Product2.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product20.scala b/src/library/scala/Product20.scala
index 9b6bb09892..47864978b1 100644
--- a/src/library/scala/Product20.scala
+++ b/src/library/scala/Product20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product21.scala b/src/library/scala/Product21.scala
index bf834c2571..c53a944886 100644
--- a/src/library/scala/Product21.scala
+++ b/src/library/scala/Product21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product22.scala b/src/library/scala/Product22.scala
index 1b32785ec1..02279303cd 100644
--- a/src/library/scala/Product22.scala
+++ b/src/library/scala/Product22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product3.scala b/src/library/scala/Product3.scala
index f366782268..eb1ac7997c 100644
--- a/src/library/scala/Product3.scala
+++ b/src/library/scala/Product3.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product4.scala b/src/library/scala/Product4.scala
index dbd96da077..582028f2e0 100644
--- a/src/library/scala/Product4.scala
+++ b/src/library/scala/Product4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product5.scala b/src/library/scala/Product5.scala
index 9a34d38722..3f55bb109f 100644
--- a/src/library/scala/Product5.scala
+++ b/src/library/scala/Product5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product6.scala b/src/library/scala/Product6.scala
index 50eb0a4532..4d17b5cc42 100644
--- a/src/library/scala/Product6.scala
+++ b/src/library/scala/Product6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product7.scala b/src/library/scala/Product7.scala
index c7b7919687..4f3e401da4 100644
--- a/src/library/scala/Product7.scala
+++ b/src/library/scala/Product7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product8.scala b/src/library/scala/Product8.scala
index e1afb0d007..5ed5f178b7 100644
--- a/src/library/scala/Product8.scala
+++ b/src/library/scala/Product8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Product9.scala b/src/library/scala/Product9.scala
index 0f904c6e3d..62e4586d80 100644
--- a/src/library/scala/Product9.scala
+++ b/src/library/scala/Product9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple1.scala b/src/library/scala/Tuple1.scala
index 74de5bf688..02ff079c7d 100644
--- a/src/library/scala/Tuple1.scala
+++ b/src/library/scala/Tuple1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple10.scala b/src/library/scala/Tuple10.scala
index 5fc0e9fec3..f8c1e20da9 100644
--- a/src/library/scala/Tuple10.scala
+++ b/src/library/scala/Tuple10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple11.scala b/src/library/scala/Tuple11.scala
index c27cddfcc4..b655f67f23 100644
--- a/src/library/scala/Tuple11.scala
+++ b/src/library/scala/Tuple11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple12.scala b/src/library/scala/Tuple12.scala
index 0d78fd7e46..f99a6795d6 100644
--- a/src/library/scala/Tuple12.scala
+++ b/src/library/scala/Tuple12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple13.scala b/src/library/scala/Tuple13.scala
index 955a8e914a..064f2d6352 100644
--- a/src/library/scala/Tuple13.scala
+++ b/src/library/scala/Tuple13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple14.scala b/src/library/scala/Tuple14.scala
index 524166896f..fa021dc1c7 100644
--- a/src/library/scala/Tuple14.scala
+++ b/src/library/scala/Tuple14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple15.scala b/src/library/scala/Tuple15.scala
index 2b88e353bd..6e4184c750 100644
--- a/src/library/scala/Tuple15.scala
+++ b/src/library/scala/Tuple15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple16.scala b/src/library/scala/Tuple16.scala
index ace0d731c0..fcf2d010bf 100644
--- a/src/library/scala/Tuple16.scala
+++ b/src/library/scala/Tuple16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple17.scala b/src/library/scala/Tuple17.scala
index a2e77aa9cb..f14c9e1554 100644
--- a/src/library/scala/Tuple17.scala
+++ b/src/library/scala/Tuple17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple18.scala b/src/library/scala/Tuple18.scala
index 58835c861f..62cb68e154 100644
--- a/src/library/scala/Tuple18.scala
+++ b/src/library/scala/Tuple18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple19.scala b/src/library/scala/Tuple19.scala
index abb4f248ec..22ada79d0d 100644
--- a/src/library/scala/Tuple19.scala
+++ b/src/library/scala/Tuple19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple2.scala b/src/library/scala/Tuple2.scala
index 39d8f6bb1d..9948206329 100644
--- a/src/library/scala/Tuple2.scala
+++ b/src/library/scala/Tuple2.scala
@@ -7,11 +7,11 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
-import scala.collection.{TraversableLike, IterableLike, IndexedSeqLike}
+import scala.collection.{TraversableLike, IterableLike}
import scala.collection.generic.CanBuildFrom
@@ -56,6 +56,7 @@ case class Tuple2[@specialized(Int, Long, Double) +T1, @specialized(Int, Long, D
val b = cbf(coll1.repr)
b.sizeHint(coll1)
val elems2 = coll2.iterator
+
for(el1 <- coll1)
if(elems2.hasNext)
b += f(el1, elems2.next)
diff --git a/src/library/scala/Tuple20.scala b/src/library/scala/Tuple20.scala
index 683c04de69..ed26f3d8ce 100644
--- a/src/library/scala/Tuple20.scala
+++ b/src/library/scala/Tuple20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple21.scala b/src/library/scala/Tuple21.scala
index 6f20fca435..3242c86ebf 100644
--- a/src/library/scala/Tuple21.scala
+++ b/src/library/scala/Tuple21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple22.scala b/src/library/scala/Tuple22.scala
index b8a8a624d1..4fbe298483 100644
--- a/src/library/scala/Tuple22.scala
+++ b/src/library/scala/Tuple22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple3.scala b/src/library/scala/Tuple3.scala
index 1621d94968..47d6bfac22 100644
--- a/src/library/scala/Tuple3.scala
+++ b/src/library/scala/Tuple3.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010 (with extra methods)
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010 (with extra methods)
package scala
diff --git a/src/library/scala/Tuple4.scala b/src/library/scala/Tuple4.scala
index 79fc125502..74bd38b6ab 100644
--- a/src/library/scala/Tuple4.scala
+++ b/src/library/scala/Tuple4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple5.scala b/src/library/scala/Tuple5.scala
index b441fd8961..d8e4eff9d9 100644
--- a/src/library/scala/Tuple5.scala
+++ b/src/library/scala/Tuple5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple6.scala b/src/library/scala/Tuple6.scala
index 0e2d0e277e..a59416fdbf 100644
--- a/src/library/scala/Tuple6.scala
+++ b/src/library/scala/Tuple6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple7.scala b/src/library/scala/Tuple7.scala
index 9f62c1900a..25f3aa85a4 100644
--- a/src/library/scala/Tuple7.scala
+++ b/src/library/scala/Tuple7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple8.scala b/src/library/scala/Tuple8.scala
index 9891797aa4..3389287627 100644
--- a/src/library/scala/Tuple8.scala
+++ b/src/library/scala/Tuple8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/Tuple9.scala b/src/library/scala/Tuple9.scala
index 28a39be444..0eb3664834 100644
--- a/src/library/scala/Tuple9.scala
+++ b/src/library/scala/Tuple9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala
diff --git a/src/library/scala/runtime/AbstractFunction0.scala b/src/library/scala/runtime/AbstractFunction0.scala
index 386091b818..974e122a8f 100644
--- a/src/library/scala/runtime/AbstractFunction0.scala
+++ b/src/library/scala/runtime/AbstractFunction0.scala
@@ -6,9 +6,8 @@
** |/ **
\* */
-// $Id$
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction1.scala b/src/library/scala/runtime/AbstractFunction1.scala
index be125d1566..238ef87e74 100644
--- a/src/library/scala/runtime/AbstractFunction1.scala
+++ b/src/library/scala/runtime/AbstractFunction1.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction10.scala b/src/library/scala/runtime/AbstractFunction10.scala
index 5e44dc7513..dda05ebae2 100644
--- a/src/library/scala/runtime/AbstractFunction10.scala
+++ b/src/library/scala/runtime/AbstractFunction10.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction11.scala b/src/library/scala/runtime/AbstractFunction11.scala
index c7e7d2de28..c6ca9c67a5 100644
--- a/src/library/scala/runtime/AbstractFunction11.scala
+++ b/src/library/scala/runtime/AbstractFunction11.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction12.scala b/src/library/scala/runtime/AbstractFunction12.scala
index 6ca4602d00..c391b38461 100644
--- a/src/library/scala/runtime/AbstractFunction12.scala
+++ b/src/library/scala/runtime/AbstractFunction12.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction13.scala b/src/library/scala/runtime/AbstractFunction13.scala
index f5f4d6f89f..32fa820001 100644
--- a/src/library/scala/runtime/AbstractFunction13.scala
+++ b/src/library/scala/runtime/AbstractFunction13.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction14.scala b/src/library/scala/runtime/AbstractFunction14.scala
index 686f0e42b8..fec1247a08 100644
--- a/src/library/scala/runtime/AbstractFunction14.scala
+++ b/src/library/scala/runtime/AbstractFunction14.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction15.scala b/src/library/scala/runtime/AbstractFunction15.scala
index 62b70ba7f9..a41cf47d7b 100644
--- a/src/library/scala/runtime/AbstractFunction15.scala
+++ b/src/library/scala/runtime/AbstractFunction15.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction16.scala b/src/library/scala/runtime/AbstractFunction16.scala
index 6bd555f2c5..f6d92f1209 100644
--- a/src/library/scala/runtime/AbstractFunction16.scala
+++ b/src/library/scala/runtime/AbstractFunction16.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction17.scala b/src/library/scala/runtime/AbstractFunction17.scala
index d679dd5a82..f76e2d0a89 100644
--- a/src/library/scala/runtime/AbstractFunction17.scala
+++ b/src/library/scala/runtime/AbstractFunction17.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction18.scala b/src/library/scala/runtime/AbstractFunction18.scala
index 04d05157a4..cf0b67dff6 100644
--- a/src/library/scala/runtime/AbstractFunction18.scala
+++ b/src/library/scala/runtime/AbstractFunction18.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction19.scala b/src/library/scala/runtime/AbstractFunction19.scala
index 0f0b4f847a..54d1fb9b7e 100644
--- a/src/library/scala/runtime/AbstractFunction19.scala
+++ b/src/library/scala/runtime/AbstractFunction19.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction2.scala b/src/library/scala/runtime/AbstractFunction2.scala
index 75dfc5e0a9..45d81290db 100644
--- a/src/library/scala/runtime/AbstractFunction2.scala
+++ b/src/library/scala/runtime/AbstractFunction2.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction20.scala b/src/library/scala/runtime/AbstractFunction20.scala
index 6df9fff32f..6e5dd4ef41 100644
--- a/src/library/scala/runtime/AbstractFunction20.scala
+++ b/src/library/scala/runtime/AbstractFunction20.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction21.scala b/src/library/scala/runtime/AbstractFunction21.scala
index 44a81e0ba9..e0c20644c3 100644
--- a/src/library/scala/runtime/AbstractFunction21.scala
+++ b/src/library/scala/runtime/AbstractFunction21.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction22.scala b/src/library/scala/runtime/AbstractFunction22.scala
index 5fc2d331ea..30aaafecc6 100644
--- a/src/library/scala/runtime/AbstractFunction22.scala
+++ b/src/library/scala/runtime/AbstractFunction22.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction3.scala b/src/library/scala/runtime/AbstractFunction3.scala
index 77473dda6f..78686e5b7f 100644
--- a/src/library/scala/runtime/AbstractFunction3.scala
+++ b/src/library/scala/runtime/AbstractFunction3.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction4.scala b/src/library/scala/runtime/AbstractFunction4.scala
index 6aaabe22d4..4e4a57d984 100644
--- a/src/library/scala/runtime/AbstractFunction4.scala
+++ b/src/library/scala/runtime/AbstractFunction4.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction5.scala b/src/library/scala/runtime/AbstractFunction5.scala
index aae3ff44a2..ce8bbe5710 100644
--- a/src/library/scala/runtime/AbstractFunction5.scala
+++ b/src/library/scala/runtime/AbstractFunction5.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction6.scala b/src/library/scala/runtime/AbstractFunction6.scala
index 1bef135b27..74ca01b581 100644
--- a/src/library/scala/runtime/AbstractFunction6.scala
+++ b/src/library/scala/runtime/AbstractFunction6.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction7.scala b/src/library/scala/runtime/AbstractFunction7.scala
index 97ee37d0c2..fcd01598d7 100644
--- a/src/library/scala/runtime/AbstractFunction7.scala
+++ b/src/library/scala/runtime/AbstractFunction7.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction8.scala b/src/library/scala/runtime/AbstractFunction8.scala
index 0a50727c6d..8ba94b9bee 100644
--- a/src/library/scala/runtime/AbstractFunction8.scala
+++ b/src/library/scala/runtime/AbstractFunction8.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/src/library/scala/runtime/AbstractFunction9.scala b/src/library/scala/runtime/AbstractFunction9.scala
index 3685004fe1..c96770762b 100644
--- a/src/library/scala/runtime/AbstractFunction9.scala
+++ b/src/library/scala/runtime/AbstractFunction9.scala
@@ -7,7 +7,7 @@
\* */
-// generated by genprod on Thu Apr 29 17:52:16 CEST 2010
+// generated by genprod on Thu Sep 09 09:06:40 PDT 2010
package scala.runtime
diff --git a/test/files/run/lift-and-unlift.scala b/test/files/run/lift-and-unlift.scala
new file mode 100644
index 0000000000..859ec02f99
--- /dev/null
+++ b/test/files/run/lift-and-unlift.scala
@@ -0,0 +1,25 @@
+object Test {
+ def evens1(x: Int) = if (x % 2 == 0) Some(x) else None
+ def evens2: PartialFunction[Int, Int] = {
+ case x if x % 2 == 0 => x
+ }
+
+ def main(args: Array[String]): Unit = {
+ val f1 = evens1 _
+ val f2 = evens2.lift
+
+ assert(1 to 10 forall (x => f1(x) == f2(x)))
+
+ val f3 = f1.unlift
+ val f4 = f2.unlift
+
+ assert(1 to 10 forall { x =>
+ if (!f3.isDefinedAt(x)) !f4.isDefinedAt(x)
+ else f3(x) == f4(x)
+ })
+
+ assert(f1 eq f3.lift)
+ // Hmm, why is this not true:
+ // assert(f2 eq f4.lift)
+ }
+}