summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Typers.scala
diff options
context:
space:
mode:
authorIulian Dragos <jaguarul@gmail.com>2009-11-26 16:55:48 +0000
committerIulian Dragos <jaguarul@gmail.com>2009-11-26 16:55:48 +0000
commit8284808cf62a87a1ad682cc64027d1bd2c444d18 (patch)
tree320617035bbeb08cdef51e3bec7b44db6c720869 /src/compiler/scala/tools/nsc/typechecker/Typers.scala
parent6f70a9f61c3e4e540dd4a6d1afebe3578501a8dd (diff)
downloadscala-8284808cf62a87a1ad682cc64027d1bd2c444d18.tar.gz
scala-8284808cf62a87a1ad682cc64027d1bd2c444d18.tar.bz2
scala-8284808cf62a87a1ad682cc64027d1bd2c444d18.zip
Closed #2418
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index 943098fe62..58146ffd80 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -1511,8 +1511,12 @@ trait Typers { self: Analyzer =>
var tpt1 = checkNoEscaping.privates(sym, typer1.typedType(vdef.tpt))
checkNonCyclic(vdef, tpt1)
- if (sym.hasAnnotation(definitions.VolatileAttr) && !sym.hasFlag(MUTABLE))
- error(vdef.pos, "values cannot be volatile")
+ if (sym.hasAnnotation(definitions.VolatileAttr)) {
+ if (!sym.hasFlag(MUTABLE))
+ error(vdef.pos, "values cannot be volatile")
+ else if (sym.hasFlag(FINAL))
+ error(vdef.pos, "final vars cannot be volatile")
+ }
val rhs1 =
if (vdef.rhs.isEmpty) {
if (sym.isVariable && sym.owner.isTerm && phase.id <= currentRun.typerPhase.id)