src/share/classes/com/sun/tools/javac/comp/Check.java

changeset 24
d032d5090fd5
parent 12
7366066839bb
child 42
f7e64b33d5a4
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Apr 09 13:19:01 2008 +0100
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Apr 09 13:41:45 2008 +0100
     1.3 @@ -1247,7 +1247,7 @@
     1.4                  for (Type t2 = sup;
     1.5                       t2.tag == CLASS;
     1.6                       t2 = types.supertype(t2)) {
     1.7 -                    for (Scope.Entry e2 = t1.tsym.members().lookup(s1.name);
     1.8 +                    for (Scope.Entry e2 = t2.tsym.members().lookup(s1.name);
     1.9                           e2.scope != null;
    1.10                           e2 = e2.next()) {
    1.11                          Symbol s2 = e2.sym;
    1.12 @@ -1394,6 +1394,16 @@
    1.13              while (e.scope != null) {
    1.14                  if (m.overrides(e.sym, origin, types, false))
    1.15                      checkOverride(tree, m, (MethodSymbol)e.sym, origin);
    1.16 +                else if (e.sym.isInheritedIn(origin, types) && !m.isConstructor()) {
    1.17 +                    Type er1 = m.erasure(types);
    1.18 +                    Type er2 = e.sym.erasure(types);
    1.19 +                    if (types.isSameType(er1,er2)) {
    1.20 +                            log.error(TreeInfo.diagnosticPositionFor(m, tree),
    1.21 +                                    "name.clash.same.erasure.no.override",
    1.22 +                                    m, m.location(),
    1.23 +                                    e.sym, e.sym.location());
    1.24 +                    }
    1.25 +                }
    1.26                  e = e.next();
    1.27              }
    1.28          }

mercurial