Index: compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java,v retrieving revision 1.97 diff -u -r1.97 BinaryTypeBinding.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java 28 Jun 2006 17:17:04 -0000 1.97 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java 5 Sep 2006 16:48:40 -0000 @@ -498,9 +498,13 @@ int[] toSkip = null; if (iMethods != null) { total = initialTotal = iMethods.length; + boolean keepBridgeMethods = sourceLevel < ClassFileConstants.JDK1_5 + && this.environment.globalOptions.complianceLevel >= ClassFileConstants.JDK1_5; for (int i = total; --i >= 0;) { IBinaryMethod method = iMethods[i]; if ((method.getModifiers() & ClassFileConstants.AccSynthetic) != 0) { + if (keepBridgeMethods && (method.getModifiers() & ClassFileConstants.AccBridge) != 0) + continue; // want to see bridge methods as real methods // discard synthetics methods if (toSkip == null) toSkip = new int[iMethods.length]; toSkip[i] = -1; Index: compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java,v retrieving revision 1.282 diff -u -r1.282 Scope.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java 17 Jul 2006 10:30:08 -0000 1.282 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/Scope.java 5 Sep 2006 16:48:40 -0000 @@ -3226,6 +3226,8 @@ continue nextVisible; if (!isAcceptableMethod(tiebreakMethod, acceptable)) continue nextVisible; + if (current.isBridge() && tiebreakMethod.areParametersEqual(acceptable)) + continue nextVisible; // skip it so acceptable wins over this bridge method } moreSpecific[i] = current; count++;