From a2dc3dd2c51a763c8a11859e0db2fb6e20b4b520 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Wed, 21 Jun 2006 15:26:02 +0000 Subject: Fixed bug 630 --- src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index 10f30a7f31..3bc224cc98 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -169,12 +169,11 @@ abstract class RefChecks extends InfoTransform { overrideError("needs `abstract override' modifiers") } else if ((member hasFlag (OVERRIDE | ABSOVERRIDE)) && (other hasFlag ACCESSOR) && other.accessed.isVariable) { overrideError("cannot override a mutable variable") - } else if (other.isStable) { - if (!member.isStable) // (1.4) - overrideError("needs to be an immutable value") - else if (!(other hasFlag DEFERRED) && other.owner.isTrait && (member hasFlag OVERRIDE)) - overrideError("cannot override a value or variable definition in a trait " + - "\n (this is an implementation restriction)") + } else if (other.isStable && !member.isStable) { // (1.4) + overrideError("needs to be an immutable value") + } else if (other.isStable && !(other hasFlag DEFERRED) && other.owner.isTrait && (member hasFlag OVERRIDE)) { + overrideError("cannot override a value or variable definition in a trait " + + "\n (this is an implementation restriction)") } else { if (other.isAliasType) { if (!member.typeParams.isEmpty) // (1.5) -- cgit v1.2.3