From 649effcb2e1ed1e221cd248d912aad8b96a99a5a Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 2 Feb 2022 12:11:51 +0100 Subject: [PATCH] [lombok] don't create fixes eagerly (IDEA-256295) GitOrigin-RevId: 60d717262f882929f3e4a064c6fd5b3cf4beb442 --- .../processor/clazz/EqualsAndHashCodeProcessor.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/clazz/EqualsAndHashCodeProcessor.java b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/clazz/EqualsAndHashCodeProcessor.java index 9c2a0b9138c1..cb5d240e5906 100644 --- a/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/clazz/EqualsAndHashCodeProcessor.java +++ b/plugins/lombok/src/main/java/de/plushnikov/intellij/plugin/processor/clazz/EqualsAndHashCodeProcessor.java @@ -4,6 +4,7 @@ import com.intellij.codeInspection.LocalQuickFix; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.util.PsiTypesUtil; +import com.intellij.util.containers.ContainerUtil; import de.plushnikov.intellij.plugin.LombokBundle; import de.plushnikov.intellij.plugin.LombokClassNames; import de.plushnikov.intellij.plugin.lombokconfig.ConfigKey; @@ -25,6 +26,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.function.Supplier; /** * Inspect and validate @EqualsAndHashCode lombok annotation on a class @@ -86,19 +88,19 @@ public final class EqualsAndHashCodeProcessor extends AbstractClassProcessor { @NotNull PsiClass psiClass, @NotNull ProblemBuilder builder) { validateCallSuperParam(psiAnnotation, psiClass, builder, - PsiQuickFixFactory.createChangeAnnotationParameterFix(psiAnnotation, "callSuper", "false"), - PsiQuickFixFactory.createChangeAnnotationParameterFix(psiAnnotation, "callSuper", "true")); + () -> PsiQuickFixFactory.createChangeAnnotationParameterFix(psiAnnotation, "callSuper", "false"), + () -> PsiQuickFixFactory.createChangeAnnotationParameterFix(psiAnnotation, "callSuper", "true")); } void validateCallSuperParamExtern(@NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass, @NotNull ProblemBuilder builder) { validateCallSuperParam(psiAnnotation, psiClass, builder, - PsiQuickFixFactory.createAddAnnotationQuickFix(psiClass, "lombok.EqualsAndHashCode", "callSuper = true")); + () -> PsiQuickFixFactory.createAddAnnotationQuickFix(psiClass, "lombok.EqualsAndHashCode", "callSuper = true")); } private void validateCallSuperParam(@NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass, @NotNull ProblemBuilder builder, - LocalQuickFix... quickFixes) { + Supplier... quickFixes) { final Boolean declaredBooleanAnnotationValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(psiAnnotation, "callSuper"); if (null == declaredBooleanAnnotationValue) { final String configProperty = configDiscovery.getStringLombokConfigProperty(ConfigKey.EQUALSANDHASHCODE_CALL_SUPER, psiClass); @@ -107,7 +109,7 @@ public final class EqualsAndHashCodeProcessor extends AbstractClassProcessor { PsiClassUtil.hasSuperClass(psiClass) && !hasOneOfMethodsDefined(psiClass)) { builder.addWarning(LombokBundle.message("inspection.message.generating.equals.hashcode.implementation"), - quickFixes); + ContainerUtil.map2Array(quickFixes, Supplier::get)); } } }