1.1 --- a/src/share/classes/com/sun/tools/javac/code/Symbol.java Thu Dec 09 15:50:10 2010 +0000 1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java Thu Dec 09 15:50:34 2010 +0000 1.3 @@ -1103,18 +1103,24 @@ 1.4 impl == null && is.nonEmpty(); 1.5 is = is.tail) { 1.6 TypeSymbol i = is.head.tsym; 1.7 - for (Scope.Entry e = i.members().lookup(name); 1.8 - impl == null && e.scope != null; 1.9 - e = e.next()) { 1.10 - if (this.overrides(e.sym, (TypeSymbol)owner, types, true) && 1.11 - // FIXME: I suspect the following requires a 1.12 - // subst() for a parametric return type. 1.13 - types.isSameType(type.getReturnType(), 1.14 - types.memberType(owner.type, e.sym).getReturnType())) { 1.15 - impl = e.sym; 1.16 - } 1.17 - if (impl == null) 1.18 - impl = implemented(i, types); 1.19 + impl = implementedIn(i, types); 1.20 + if (impl == null) 1.21 + impl = implemented(i, types); 1.22 + } 1.23 + return impl; 1.24 + } 1.25 + 1.26 + public Symbol implementedIn(TypeSymbol c, Types types) { 1.27 + Symbol impl = null; 1.28 + for (Scope.Entry e = c.members().lookup(name); 1.29 + impl == null && e.scope != null; 1.30 + e = e.next()) { 1.31 + if (this.overrides(e.sym, (TypeSymbol)owner, types, true) && 1.32 + // FIXME: I suspect the following requires a 1.33 + // subst() for a parametric return type. 1.34 + types.isSameType(type.getReturnType(), 1.35 + types.memberType(owner.type, e.sym).getReturnType())) { 1.36 + impl = e.sym; 1.37 } 1.38 } 1.39 return impl;