langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
changeset 508 118e500e2e50
parent 169 ff76730e430e
child 661 9b2f1fe5c183
equal deleted inserted replaced
507:bdd92cc35ac4 508:118e500e2e50
  1245                 if (st1 == s1.type) continue;
  1245                 if (st1 == s1.type) continue;
  1246 
  1246 
  1247                 for (Type t2 = sup;
  1247                 for (Type t2 = sup;
  1248                      t2.tag == CLASS;
  1248                      t2.tag == CLASS;
  1249                      t2 = types.supertype(t2)) {
  1249                      t2 = types.supertype(t2)) {
  1250                     for (Scope.Entry e2 = t1.tsym.members().lookup(s1.name);
  1250                     for (Scope.Entry e2 = t2.tsym.members().lookup(s1.name);
  1251                          e2.scope != null;
  1251                          e2.scope != null;
  1252                          e2 = e2.next()) {
  1252                          e2 = e2.next()) {
  1253                         Symbol s2 = e2.sym;
  1253                         Symbol s2 = e2.sym;
  1254                         if (s2 == s1 ||
  1254                         if (s2 == s1 ||
  1255                             s2.kind != MTH ||
  1255                             s2.kind != MTH ||
  1392             TypeSymbol c = t.tsym;
  1392             TypeSymbol c = t.tsym;
  1393             Scope.Entry e = c.members().lookup(m.name);
  1393             Scope.Entry e = c.members().lookup(m.name);
  1394             while (e.scope != null) {
  1394             while (e.scope != null) {
  1395                 if (m.overrides(e.sym, origin, types, false))
  1395                 if (m.overrides(e.sym, origin, types, false))
  1396                     checkOverride(tree, m, (MethodSymbol)e.sym, origin);
  1396                     checkOverride(tree, m, (MethodSymbol)e.sym, origin);
       
  1397                 else if (e.sym.isInheritedIn(origin, types) && !m.isConstructor()) {
       
  1398                     Type er1 = m.erasure(types);
       
  1399                     Type er2 = e.sym.erasure(types);
       
  1400                     if (types.isSameType(er1,er2)) {
       
  1401                             log.error(TreeInfo.diagnosticPositionFor(m, tree),
       
  1402                                     "name.clash.same.erasure.no.override",
       
  1403                                     m, m.location(),
       
  1404                                     e.sym, e.sym.location());
       
  1405                     }
       
  1406                 }
  1397                 e = e.next();
  1407                 e = e.next();
  1398             }
  1408             }
  1399         }
  1409         }
  1400     }
  1410     }
  1401 
  1411