summaryrefslogtreecommitdiff
path: root/sources/scalac/typechecker
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-10-09 15:59:00 +0000
committerMartin Odersky <odersky@gmail.com>2003-10-09 15:59:00 +0000
commitdfc5cdeeb776762373603ee3a204b74570811ae6 (patch)
tree2086f463f354fdc8739701c9aa5d1bff6231c837 /sources/scalac/typechecker
parent10ce3e7c800484ebc74f0dfdacbbb1a258555489 (diff)
downloadscala-dfc5cdeeb776762373603ee3a204b74570811ae6.tar.gz
scala-dfc5cdeeb776762373603ee3a204b74570811ae6.tar.bz2
scala-dfc5cdeeb776762373603ee3a204b74570811ae6.zip
*** empty log message ***
Diffstat (limited to 'sources/scalac/typechecker')
-rw-r--r--sources/scalac/typechecker/RefCheck.java22
1 files changed, 11 insertions, 11 deletions
diff --git a/sources/scalac/typechecker/RefCheck.java b/sources/scalac/typechecker/RefCheck.java
index 8c87e28a3c..6324eb8927 100644
--- a/sources/scalac/typechecker/RefCheck.java
+++ b/sources/scalac/typechecker/RefCheck.java
@@ -88,17 +88,6 @@ public class RefCheck extends Transformer implements Modifiers, Kinds {
if (i < 0) {
unit.error(sym.pos, sym + " overrides nothing");
sym.flags &= ~OVERRIDE;
- } else if (sym.isAbstractOverride()) {
- Symbol sup = sym.overriddenSymbol(parents[0]);
- if (sup.kind == NONE) {
- unit.error(sym.pos, sym + " does not override a superclass member");
- } else if (clazz.kind == CLASS &&
- (clazz.flags & ABSTRACT) == 0 &&
- isIncomplete(sup)) {
- abstractClassError(
- clazz, sym + sym.locationString() +
- " is marked `abstract' and `override' and overrides an incomplete superclass member in " + parents[0]);
- }
}
}
}
@@ -150,6 +139,17 @@ public class RefCheck extends Transformer implements Modifiers, Kinds {
member + member.locationString() + " is not defined" +
(((member.flags & MUTABLE) == 0) ? ""
: "\n(Note that variables need to be initialized to be defined)"));
+ } else if (member.isAbstractOverride()) {
+ Type superclazz = clazz.parents()[0];
+ Symbol sup = member.overriddenSymbol(superclazz);
+ if (sup.kind == NONE) {
+ unit.error(member.pos, member + " does not override a superclass member");
+ } else if (clazz.kind == CLASS && (clazz.flags & ABSTRACT) == 0 &&
+ isIncomplete(sup)) {
+ abstractClassError(
+ clazz, member + member.locationString() +
+ " is marked `abstract' and `override' and overrides an incomplete superclass member in " + superclazz);
+ }
}
}
}