From 9f9932bd20250d243d2df04d8b42417a896dc987 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Thu, 10 Nov 2011 21:04:36 +0000 Subject: Fix for regression in overriding with defaults. I should know better than to behave as if usable inferences can be drawn from a comment like "SYNTHETIC because of DEVIRTUALIZE". Maybe it was even true when it was written, but no more. Closes SI-5178, no review. --- src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/compiler') diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index c3c353385c..1c4355b3bd 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -364,7 +364,8 @@ abstract class RefChecks extends InfoTransform with reflect.internal.transform.R overrideError("cannot be used here - classes can only override abstract types"); } else if (other.isFinal) { // (1.2) overrideError("cannot override final member"); - } else if (!other.isDeferred && !member.isAnyOverride) { + // synthetic exclusion needed for (at least) default getters. + } else if (!other.isDeferred && !member.isAnyOverride && !member.isSynthetic) { overrideError("needs `override' modifier"); } else if (other.isAbstractOverride && other.isIncompleteIn(clazz) && !member.isAbstractOverride) { overrideError("needs `abstract override' modifiers") -- cgit v1.2.3