summaryrefslogtreecommitdiff
path: root/test/files/scalap
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-09-26 23:49:03 +0000
committerPaul Phillips <paulp@improving.org>2011-09-26 23:49:03 +0000
commite412524fee20da975954c929893e88db17dbdd9a (patch)
treee7c491b8d303879b49426d98f714d81c672d885f /test/files/scalap
parent660d80f682317eaf3d55a9b63bb95396ac417cdd (diff)
downloadscala-e412524fee20da975954c929893e88db17dbdd9a.tar.gz
scala-e412524fee20da975954c929893e88db17dbdd9a.tar.bz2
scala-e412524fee20da975954c929893e88db17dbdd9a.zip
ProductN, and method synthesis toolbox.
- Finished giving case classes a ProductN parent, and flipped it on. The "finish" part involved not breaking existing code where case classes manually extend the appropriate ProductN. (Like, Tuple 1-22.) - Generalized most of SyntheticMethods to ease method creation and class manipulation in general. - Fixed bugs related to the above, like the fact that this used to be a compile error: scala> case class Foo() extends Serializable <console>:28: error: trait Serializable is inherited twice case class Foo() extends Serializable ^ It feels like there's a better way to eliminate the duplicate parents, but after spending a lot of time chasing my tail in that peril-fraught zone between namer and typer, I don't see an easy path to improve on it. Closes SI-1799. For that modification to Typers, review by odersky.
Diffstat (limited to 'test/files/scalap')
-rw-r--r--test/files/scalap/caseClass/result.test13
-rw-r--r--test/files/scalap/caseObject/result.test11
2 files changed, 13 insertions, 11 deletions
diff --git a/test/files/scalap/caseClass/result.test b/test/files/scalap/caseClass/result.test
index 9b65be4b48..d243ae640b 100644
--- a/test/files/scalap/caseClass/result.test
+++ b/test/files/scalap/caseClass/result.test
@@ -1,13 +1,14 @@
-case class CaseClass[A <: scala.Seq[scala.Int]](i : A, s : scala.Predef.String) extends java.lang.Object with scala.ScalaObject with scala.Product with scala.Serializable {
+case class CaseClass[A <: scala.Seq[scala.Int]](i : A, s : scala.Predef.String) extends java.lang.Object with scala.ScalaObject with scala.Product with scala.Serializable with scala.Product2[A, scala.Predef.String] {
val i : A = { /* compiled code */ }
val s : scala.Predef.String = { /* compiled code */ }
def foo : scala.Int = { /* compiled code */ }
def copy[A <: scala.Seq[scala.Int]](i : A, s : scala.Predef.String) : CaseClass[A] = { /* compiled code */ }
+ override def productPrefix : java.lang.String = { /* compiled code */ }
+ override def productIterator : scala.collection.Iterator[scala.Any] = { /* compiled code */ }
+ def canEqual(x$1 : scala.Any) : scala.Boolean = { /* compiled code */ }
+ def _1 : A = { /* compiled code */ }
+ def _2 : scala.Predef.String = { /* compiled code */ }
override def hashCode() : scala.Int = { /* compiled code */ }
- override def toString() : scala.Predef.String = { /* compiled code */ }
+ override def toString() : java.lang.String = { /* compiled code */ }
override def equals(x$1 : scala.Any) : scala.Boolean = { /* compiled code */ }
- override def productPrefix : java.lang.String = { /* compiled code */ }
- override def productArity : scala.Int = { /* compiled code */ }
- override def productElement(x$1 : scala.Int) : scala.Any = { /* compiled code */ }
- override def canEqual(x$1 : scala.Any) : scala.Boolean = { /* compiled code */ }
}
diff --git a/test/files/scalap/caseObject/result.test b/test/files/scalap/caseObject/result.test
index 556c5554a2..8f8da7d9bd 100644
--- a/test/files/scalap/caseObject/result.test
+++ b/test/files/scalap/caseObject/result.test
@@ -1,10 +1,11 @@
case object CaseObject extends java.lang.Object with scala.ScalaObject with scala.Product with scala.Serializable {
def bar : scala.Int = { /* compiled code */ }
- final override def hashCode() : scala.Int = { /* compiled code */ }
- final override def toString() : java.lang.String = { /* compiled code */ }
override def productPrefix : java.lang.String = { /* compiled code */ }
- override def productArity : scala.Int = { /* compiled code */ }
- override def productElement(x$1 : scala.Int) : scala.Any = { /* compiled code */ }
- override def canEqual(x$1 : scala.Any) : scala.Boolean = { /* compiled code */ }
+ def productArity : scala.Int = { /* compiled code */ }
+ def productElement(x$1 : scala.Int) : scala.Any = { /* compiled code */ }
+ override def productIterator : scala.collection.Iterator[scala.Any] = { /* compiled code */ }
+ def canEqual(x$1 : scala.Any) : scala.Boolean = { /* compiled code */ }
+ override def hashCode() : scala.Int = { /* compiled code */ }
+ override def toString() : java.lang.String = { /* compiled code */ }
protected def readResolve() : java.lang.Object = { /* compiled code */ }
}