diff options
author | Martin Odersky <odersky@gmail.com> | 2005-11-22 12:26:05 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2005-11-22 12:26:05 +0000 |
commit | d4de06d53a1dcd678ea8051fc29555bad0300a16 (patch) | |
tree | 3a822cb16fc7b12a0bbf831d5bd3c5d98e07cb57 /sources/scala/tools/nsc/typechecker/RefChecks.scala | |
parent | 12c007cda6ff4d6b902efbfef18a057370bcd86e (diff) | |
download | scala-d4de06d53a1dcd678ea8051fc29555bad0300a16.tar.gz scala-d4de06d53a1dcd678ea8051fc29555bad0300a16.tar.bz2 scala-d4de06d53a1dcd678ea8051fc29555bad0300a16.zip |
*** empty log message ***
Diffstat (limited to 'sources/scala/tools/nsc/typechecker/RefChecks.scala')
-rwxr-xr-x | sources/scala/tools/nsc/typechecker/RefChecks.scala | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sources/scala/tools/nsc/typechecker/RefChecks.scala b/sources/scala/tools/nsc/typechecker/RefChecks.scala index b6becf5972..4bb8091e53 100755 --- a/sources/scala/tools/nsc/typechecker/RefChecks.scala +++ b/sources/scala/tools/nsc/typechecker/RefChecks.scala @@ -249,7 +249,9 @@ abstract class RefChecks extends InfoTransform { // 3. Check that every defined member with an `override' modifier overrides some other member. for (val member <- clazz.info.decls.toList) if ((member hasFlag (OVERRIDE | ABSOVERRIDE)) && - (clazz.info.baseClasses.tail forall (bc => member.overriddenSymbol(bc) == NoSymbol))) { + (clazz.info.baseClasses.tail forall { + bc => member.matchingSymbol(bc, clazz.thisType) == NoSymbol + })) { // for (val bc <- clazz.info.baseClasses.tail) System.out.println("" + bc + " has " + bc.info.decl(member.name) + ":" + bc.info.decl(member.name).tpe);//DEBUG unit.error(member.pos, member.toString() + " overrides nothing"); member resetFlag OVERRIDE @@ -550,7 +552,7 @@ abstract class RefChecks extends InfoTransform { case Super(qualifier, mixin) => val base = currentOwner.enclClass; if (sym hasFlag DEFERRED) { - val member = sym.overridingSymbol(base); + val member = sym.overridingSymbol(base);//??? if (mixin != nme.EMPTY.toTypeName || member == NoSymbol || !((member hasFlag ABSOVERRIDE) && member.isIncompleteIn(base))) unit.error(tree.pos, "symbol accessed from super may not be abstract"); |