summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-11-13 17:31:12 +0000
committerMartin Odersky <odersky@gmail.com>2009-11-13 17:31:12 +0000
commit6c4064a77086ee82de861ec30dfd87fe120c6b0d (patch)
treeb8f815eb95603d1f023c22162d82f8fda4ae6718 /src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
parent92c280f6d1116a551b805543a216eb01ab94c8cf (diff)
downloadscala-6c4064a77086ee82de861ec30dfd87fe120c6b0d.tar.gz
scala-6c4064a77086ee82de861ec30dfd87fe120c6b0d.tar.bz2
scala-6c4064a77086ee82de861ec30dfd87fe120c6b0d.zip
Fixes #1477 by requiring that abstract types wi...
Fixes #1477 by requiring that abstract types with non-volatile upper bounds cannot be overridden by volatile types.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/RefChecks.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index 9b8be2aaec..d5187a4564 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -368,6 +368,9 @@ abstract class RefChecks extends InfoTransform {
"The kind of the right-hand side "+memberTp.normalize+" of "+member.keyString+" "+
member.varianceString + member.nameString+ " does not conform to its expected kind."+
kindErrors.toList.mkString("\n", ", ", ""))
+ } else if (member.isAbstractType) {
+ if (memberTp.isVolatile && !otherTp.bounds.hi.isVolatile)
+ overrideError("is a volatile type; cannot override a type with non-volatile upper bound")
}
} else if (other.isTerm) {
other.cookJavaRawInfo() // #2454