diff options
author | Paul Phillips <paulp@improving.org> | 2011-03-15 06:18:02 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-03-15 06:18:02 +0000 |
commit | c45095387566fc7403f04c55ac0e3abcf34bfc52 (patch) | |
tree | c1b1552269ec1eac166893eab79f137009e69836 | |
parent | 06a98d22ce16aae01757d7aceaad9b7fb3a9d903 (diff) | |
download | scala-c45095387566fc7403f04c55ac0e3abcf34bfc52.tar.gz scala-c45095387566fc7403f04c55ac0e3abcf34bfc52.tar.bz2 scala-c45095387566fc7403f04c55ac0e3abcf34bfc52.zip |
Slight tweak to case class deprecation message,...
Slight tweak to case class deprecation message, no review.
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 5 | ||||
-rw-r--r-- | test/files/neg/caseinherit.check | 6 |
2 files changed, 4 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index d1fe796030..7ba561136d 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -1007,13 +1007,10 @@ trait Typers extends Modes { } private def validateNoCaseAncestor(clazz: Symbol) = { - // XXX I think this should issue a sharper warning of some kind like - // "change your code now!" as there are material bugs (which are very unlikely - // to be fixed) associated with case class inheritance. if (!phase.erasedTypes) { for (ancestor <- clazz.ancestors find (_.isCase)) { unit.deprecationWarning(clazz.pos, ( - "case class `%s' has case ancestor `%s'. Case inheritance has potentially "+ + "case class `%s' has case ancestor `%s'. Case-to-case inheritance has potentially "+ "dangerous bugs which are unlikely to be fixed. You are strongly encouraged to "+ "instead use extractors to pattern match on non-leaf nodes." ).format(clazz, ancestor)) diff --git a/test/files/neg/caseinherit.check b/test/files/neg/caseinherit.check index c0886cb7ff..5630da2a3e 100644 --- a/test/files/neg/caseinherit.check +++ b/test/files/neg/caseinherit.check @@ -1,10 +1,10 @@ -caseinherit.scala:2: error: case class `class B' has case ancestor `class A'. Case inheritance has potentially dangerous bugs which are unlikely to be fixed. You are strongly encouraged to instead use extractors to pattern match on non-leaf nodes. +caseinherit.scala:2: error: case class `class B' has case ancestor `class A'. Case-to-case inheritance has potentially dangerous bugs which are unlikely to be fixed. You are strongly encouraged to instead use extractors to pattern match on non-leaf nodes. case class B(y: Int) extends A(y) ^ -caseinherit.scala:3: error: case class `object Bippy' has case ancestor `class A'. Case inheritance has potentially dangerous bugs which are unlikely to be fixed. You are strongly encouraged to instead use extractors to pattern match on non-leaf nodes. +caseinherit.scala:3: error: case class `object Bippy' has case ancestor `class A'. Case-to-case inheritance has potentially dangerous bugs which are unlikely to be fixed. You are strongly encouraged to instead use extractors to pattern match on non-leaf nodes. case object Bippy extends A(55) ^ -caseinherit.scala:6: error: case class `class Dingus' has case ancestor `class A'. Case inheritance has potentially dangerous bugs which are unlikely to be fixed. You are strongly encouraged to instead use extractors to pattern match on non-leaf nodes. +caseinherit.scala:6: error: case class `class Dingus' has case ancestor `class A'. Case-to-case inheritance has potentially dangerous bugs which are unlikely to be fixed. You are strongly encouraged to instead use extractors to pattern match on non-leaf nodes. case class Dingus(y: Int) extends Innocent ^ three errors found |