Index: dom/org/eclipse/jdt/core/dom/BindingComparator.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BindingComparator.java,v retrieving revision 1.18 diff -u -r1.18 BindingComparator.java --- dom/org/eclipse/jdt/core/dom/BindingComparator.java 15 May 2005 10:14:24 -0000 1.18 +++ dom/org/eclipse/jdt/core/dom/BindingComparator.java 15 Jun 2005 16:07:24 -0000 @@ -168,16 +168,12 @@ return true; } } - // TODO (olivier) should optimize to use switch(binding.kind()) & modifier bitmask comparisons static boolean isEqual(org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding2, HashSet visitedTypes) { if (typeBinding == typeBinding2) return true; if (typeBinding == null || typeBinding2 == null) return false; - if (visitedTypes.contains(typeBinding)) return true; - visitedTypes.add(typeBinding); - switch (typeBinding.kind()) { case Binding.BASE_TYPE : if (!typeBinding2.isBaseType()) { @@ -213,6 +209,9 @@ && wildcardBinding.boundKind == wildcardBinding2.boundKind; case Binding.TYPE_PARAMETER : + if (visitedTypes.contains(typeBinding)) return true; + visitedTypes.add(typeBinding); + if (!(typeBinding2.isTypeVariable())) { return false; }