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 /src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | |
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 'src/compiler/scala/tools/nsc/typechecker/RefChecks.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index d4565c8e0c..89ec052556 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -287,6 +287,8 @@ abstract class RefChecks extends InfoTransform with reflect.internal.transform.R infoStringWithLocation(other), infoStringWithLocation(member) ) + else if (settings.debug.value) + analyzer.foundReqMsg(member.tpe, other.tpe) else "" "overriding %s;\n %s %s%s".format( |