diff options
author | Paul Phillips <paulp@improving.org> | 2011-09-26 23:49:03 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-09-26 23:49:03 +0000 |
commit | e412524fee20da975954c929893e88db17dbdd9a (patch) | |
tree | e7c491b8d303879b49426d98f714d81c672d885f /test/files/scalap | |
parent | 660d80f682317eaf3d55a9b63bb95396ac417cdd (diff) | |
download | scala-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.test | 13 | ||||
-rw-r--r-- | test/files/scalap/caseObject/result.test | 11 |
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 */ } } |