1.1 --- a/src/share/classes/com/sun/tools/javac/code/Types.java Fri Feb 15 16:29:58 2013 +0000 1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Types.java Fri Feb 15 16:30:31 2013 +0000 1.3 @@ -2606,16 +2606,17 @@ 1.4 candidates = candidates.prepend((MethodSymbol)s); 1.5 } 1.6 } 1.7 - return prune(candidates, ownerComparator); 1.8 + return prune(candidates); 1.9 } 1.10 1.11 - public List<MethodSymbol> prune(List<MethodSymbol> methods, Comparator<MethodSymbol> cmp) { 1.12 + public List<MethodSymbol> prune(List<MethodSymbol> methods) { 1.13 ListBuffer<MethodSymbol> methodsMin = ListBuffer.lb(); 1.14 for (MethodSymbol m1 : methods) { 1.15 boolean isMin_m1 = true; 1.16 for (MethodSymbol m2 : methods) { 1.17 if (m1 == m2) continue; 1.18 - if (cmp.compare(m2, m1) < 0) { 1.19 + if (m2.owner != m1.owner && 1.20 + asSuper(m2.owner.type, m1.owner) != null) { 1.21 isMin_m1 = false; 1.22 break; 1.23 } 1.24 @@ -2625,12 +2626,6 @@ 1.25 } 1.26 return methodsMin.toList(); 1.27 } 1.28 - 1.29 - Comparator<MethodSymbol> ownerComparator = new Comparator<MethodSymbol>() { 1.30 - public int compare(MethodSymbol s1, MethodSymbol s2) { 1.31 - return s1.owner.isSubClass(s2.owner, Types.this) ? -1 : 1; 1.32 - } 1.33 - }; 1.34 // where 1.35 private class MethodFilter implements Filter<Symbol> { 1.36