diff -r 961ae2608114 -r d032d5090fd5 src/share/classes/com/sun/tools/javac/comp/Check.java --- a/src/share/classes/com/sun/tools/javac/comp/Check.java Wed Apr 09 13:19:01 2008 +0100 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java Wed Apr 09 13:41:45 2008 +0100 @@ -1247,7 +1247,7 @@ for (Type t2 = sup; t2.tag == CLASS; t2 = types.supertype(t2)) { - for (Scope.Entry e2 = t1.tsym.members().lookup(s1.name); + for (Scope.Entry e2 = t2.tsym.members().lookup(s1.name); e2.scope != null; e2 = e2.next()) { Symbol s2 = e2.sym; @@ -1394,6 +1394,16 @@ while (e.scope != null) { if (m.overrides(e.sym, origin, types, false)) checkOverride(tree, m, (MethodSymbol)e.sym, origin); + else if (e.sym.isInheritedIn(origin, types) && !m.isConstructor()) { + Type er1 = m.erasure(types); + Type er2 = e.sym.erasure(types); + if (types.isSameType(er1,er2)) { + log.error(TreeInfo.diagnosticPositionFor(m, tree), + "name.clash.same.erasure.no.override", + m, m.location(), + e.sym, e.sym.location()); + } + } e = e.next(); } }