generate equals: skip equals generated in the same class (IDEA-170746)

This commit is contained in:
Anna.Kozlova
2018-02-07 18:36:34 +01:00
parent cc36b57c19
commit d536d50a3c
@@ -226,8 +226,19 @@ public class GenerateEqualsHelper implements Runnable {
LOG.assertTrue(myClass.isValid());
PsiMethod superEquals = MethodSignatureUtil.findMethodBySignature(myClass, methodSignature, true);
if (superEquals == null) return true;
PsiClass containingClass = superEquals.getContainingClass();
//implicit equals e.g. generated by lombok
if (containingClass == myClass) {
return Arrays.stream(superEquals.findSuperMethods()).anyMatch(superMethod -> {
PsiClass superClass = superMethod.getContainingClass();
return !superMethod.hasModifierProperty(PsiModifier.ABSTRACT) &&
superClass != null &&
!CommonClassNames.JAVA_LANG_OBJECT.equals(superClass.getQualifiedName());
});
}
if (superEquals.hasModifierProperty(PsiModifier.ABSTRACT)) return false;
return !CommonClassNames.JAVA_LANG_OBJECT.equals(superEquals.getContainingClass().getQualifiedName());
if (containingClass == null) return false;
return !CommonClassNames.JAVA_LANG_OBJECT.equals(containingClass.getQualifiedName());
}
private PsiMethod createHashCode() throws IncorrectOperationException {