summaryrefslogtreecommitdiff
path: root/src/build
diff options
context:
space:
mode:
authorBurak Emir <emir@epfl.ch>2007-01-02 16:51:29 +0000
committerBurak Emir <emir@epfl.ch>2007-01-02 16:51:29 +0000
commitbfea9f20d231bc6b7fb75edbce277d883265b89d (patch)
tree97d1ad6e319e2dbc96edde4c906ae9668f82c7cb /src/build
parent9e3b5c094b4e8b96d418d7498deab78dcb8bf150 (diff)
downloadscala-bfea9f20d231bc6b7fb75edbce277d883265b89d.tar.gz
scala-bfea9f20d231bc6b7fb75edbce277d883265b89d.tar.bz2
scala-bfea9f20d231bc6b7fb75edbce277d883265b89d.zip
* TupleN extends ProductN, again (genprod updated)
* better comments and parameter names in scala.xml.MetaData typechecker * now handles special cases (n=0, n=1) for unapply correctly * * even if one returns a Option[Product1[T]] * typechecker now handles unapply return types correctly * * e.g. when returning Option[{A,B}] instead of Option[Product2[A,B]]
Diffstat (limited to 'src/build')
-rw-r--r--src/build/genprod.scala19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/build/genprod.scala b/src/build/genprod.scala
index 5ea86232db..229ef1ae7a 100644
--- a/src/build/genprod.scala
+++ b/src/build/genprod.scala
@@ -129,7 +129,7 @@ object FunctionFile {
** |/ **
\* */
-// $Id$
+// {"$Id$"}
// generated by genprod on {new java.util.Date().toString()} {if(descriptiveComment(i).length > 0) "(with fancy comment)" else ""} {if(moreMethods(i).length > 0) "(with extra methods)" else ""}
@@ -224,7 +224,8 @@ zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz */
object TupleFile {
import genprod._
def make(i: Int) = {
- val __typeArgs__ = covariantArgs(i).mkString("[",", ","]")
+ val __typeArgs__ = covariantArgs(i).mkString("[",", ","]")
+ val __typeArgRefs__ = targs(i).mkString("[",", ","]")
val __fields__ = fields(i)
<file name={tupleFilename(i)}>
/* __ *\
@@ -235,14 +236,15 @@ object TupleFile {
** |/ **
\* */
-// $Id$
+// {"$Id$"}
// generated by genprod on {new java.util.Date().toString()}
package scala
/** {tupleClassname(i)} is the canonical representation of a @see {productClassname(i)} */
-case class {tupleClassname(i)}{__typeArgs__}({ __fields__ }) {{
+case class {tupleClassname(i)}{__typeArgs__}({ __fields__ })
+ extends {productClassname(i)}{__typeArgRefs__} {{
override def toString() = {{
val sb = new compat.StringBuilder
@@ -280,7 +282,7 @@ object ProductFile {
** |/ **
\* */
-// $Id$
+// {"$Id$"}
// generated by genprod on {new java.util.Date().toString()}
@@ -289,11 +291,8 @@ package scala
import Predef._
object {productClassname(i)} {{
- def unapply{__refArgs__}(x: Any): Option[{productClassname(i)}{__refArgs__}] =
- if (x.isInstanceOf[{productClassname(i)}{__refArgs__}])
- Some(x.asInstanceOf[{productClassname(i)}{__refArgs__}])
- else
- None
+ def unapply{__refArgs__}(x: {productClassname(i)}{__refArgs__}): Some[{productClassname(i)}{__refArgs__}] =
+ Some(x)
}}
/** {productClassname(i)} is a cartesian product of {i} components