diff options
author | Martin Odersky <odersky@gmail.com> | 2009-11-13 17:31:12 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-11-13 17:31:12 +0000 |
commit | 6c4064a77086ee82de861ec30dfd87fe120c6b0d (patch) | |
tree | b8f815eb95603d1f023c22162d82f8fda4ae6718 /src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | |
parent | 92c280f6d1116a551b805543a216eb01ab94c8cf (diff) | |
download | scala-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.scala | 3 |
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 |