mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Java: don't ask about array field nullability when generating equals/hashCode (IDEA-339226)
GitOrigin-RevId: b898bfde3537225d694e146b8763a6ec3b43553f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
10f0f43940
commit
5c5c16a392
@@ -154,8 +154,7 @@ public class GenerateEqualsWizard extends AbstractGenerateEqualsWizard<PsiClass,
|
||||
final ArrayList<MemberInfo> list = new ArrayList<>();
|
||||
|
||||
for (MemberInfo equalsMemberInfo : equalsMemberInfos) {
|
||||
PsiField field = (PsiField)equalsMemberInfo.getMember();
|
||||
if (!(field.getType() instanceof PsiPrimitiveType)) {
|
||||
if (mayNeedNullCheck((PsiField)equalsMemberInfo.getMember())) {
|
||||
list.add(myFieldsToNonNull.get(equalsMemberInfo.getMember()));
|
||||
}
|
||||
}
|
||||
@@ -227,11 +226,8 @@ public class GenerateEqualsWizard extends AbstractGenerateEqualsWizard<PsiClass,
|
||||
if (step + 1 == getNonNullStepCode()) {
|
||||
if (templateDependsOnFieldsNullability()) {
|
||||
for (MemberInfo classField : myClassFields) {
|
||||
if (classField.isChecked()) {
|
||||
PsiField field = (PsiField)classField.getMember();
|
||||
if (!(field.getType() instanceof PsiPrimitiveType)) {
|
||||
return getNonNullStepCode();
|
||||
}
|
||||
if (classField.isChecked() && mayNeedNullCheck((PsiField)classField.getMember())) {
|
||||
return getNonNullStepCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -241,6 +237,11 @@ public class GenerateEqualsWizard extends AbstractGenerateEqualsWizard<PsiClass,
|
||||
return super.getNextStep(step);
|
||||
}
|
||||
|
||||
private static boolean mayNeedNullCheck(PsiField field) {
|
||||
PsiType type = field.getType();
|
||||
return !(type instanceof PsiPrimitiveType) && !(type instanceof PsiArrayType);
|
||||
}
|
||||
|
||||
private static boolean templateDependsOnFieldsNullability() {
|
||||
final EqualsHashCodeTemplatesManager templatesManager = EqualsHashCodeTemplatesManager.getInstance();
|
||||
final String notNullCheckPresent = "\\.notNull\\W";
|
||||
|
||||
Reference in New Issue
Block a user