if (CharOperation.equals(typeVariableBinding.sourceName, typeVariableBinding2.sourceName)) {
if (visitedTypes.contains(typeBinding)) return true;
visitedTypes.add(typeBinding);
return isEqual(typeVariableBinding.declaringElement, typeVariableBinding2.declaringElement, visitedTypes)
&& isEqual(typeVariableBinding.superclass(), typeVariableBinding2.superclass(), visitedTypes)
&& isEqual(typeVariableBinding.superInterfaces(), typeVariableBinding2.superInterfaces(), visitedTypes);
}
return false;
case Binding.GENERIC_TYPE :
if (!typeBinding2.isGenericType()) {