### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java,v retrieving revision 1.189.2.3 diff -u -r1.189.2.3 SourceTypeBinding.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java 18 Aug 2011 10:02:24 -0000 1.189.2.3 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java 26 Aug 2011 10:41:04 -0000 @@ -1233,8 +1233,16 @@ int index = pLength; // is erasure of signature of m2 same as signature of m1? for (; --index >= 0;) { - if (params1[index] != params2[index].erasure()) - break; + if (params1[index] != params2[index].erasure()) { + // If one of them is a raw type + if (params1[index] instanceof RawTypeBinding) { + if (params2[index].erasure() != ((RawTypeBinding)params1[index]).actualType()) { + break; + } + } else { + break; + } + } if (params1[index] == params2[index]) { TypeBinding type = params1[index].leafComponentType(); if (type instanceof SourceTypeBinding && type.typeVariables() != Binding.NO_TYPE_VARIABLES) { @@ -1246,8 +1254,16 @@ if (index >= 0 && index < pLength) { // is erasure of signature of m1 same as signature of m2? for (index = pLength; --index >= 0;) - if (params1[index].erasure() != params2[index]) - break; + if (params1[index].erasure() != params2[index]) { + // If one of them is a raw type + if (params2[index] instanceof RawTypeBinding) { + if (params1[index].erasure() != ((RawTypeBinding)params2[index]).actualType()) { + break; + } + } else { + break; + } + } } if (index >= 0) {