[lombok] IDEA-255688 Partial Revert: Get rid of LombokHighlightErrorFilter for "Redundant Initializer Inspection"

already fixed with 24c8ea6896925f9af478b38e9a923d2ec4678ee9

GitOrigin-RevId: b1a1cf8a7fcf6a35cd67bf07fdf67fbc9415d1e8
This commit is contained in:
Michail Plushnikov
2023-12-04 19:53:43 +01:00
committed by intellij-monorepo-bot
parent a93bf77d6f
commit 67578dcd6c
5 changed files with 1 additions and 39 deletions

View File

@@ -34,7 +34,6 @@
<extensionPoint qualifiedName="com.intellij.codeInsight.changeVariableTypeQuickFixProvider" interface="com.intellij.codeInsight.quickfix.ChangeVariableTypeQuickFixProvider" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.lang.jvm.annotationPackageSupport" interface="com.intellij.codeInsight.annoPackages.AnnotationPackageSupport" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.lang.jvm.ignoreAnnotationParamSupport" interface="com.intellij.codeInspection.DefaultAnnotationParamInspection$IgnoreAnnotationParamSupport" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.lang.jvm.ignoreVariableInitializerSupport" interface="com.intellij.codeInspection.defUse.DefUseInspection$IgnoreVariableInitializerSupport" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.lang.jvm.ignoreVariableInitializedBeforeUsageSupport" interface="com.intellij.codeInsight.daemon.impl.analysis.VariableInitializedBeforeUsageSupport" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.lang.jvm.ignoreMethodCallExpressionNPESupport" interface="com.intellij.codeInspection.dataFlow.MethodCallProduceNPESupport" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.javaLanguageLevelPusherCustomizer" interface="com.intellij.openapi.roots.impl.JavaLanguageLevelPusherCustomizer" dynamic="true"/>

View File

@@ -12,7 +12,6 @@ import com.intellij.codeInspection.dataFlow.value.DfaValueFactory;
import com.intellij.codeInspection.dataFlow.value.DfaVariableValue;
import com.intellij.codeInspection.options.OptPane;
import com.intellij.java.JavaBundle;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.psi.*;
import com.intellij.psi.augment.PsiAugmentProvider;
import com.intellij.psi.controlFlow.*;
@@ -37,22 +36,6 @@ public class DefUseInspection extends AbstractBaseJavaLocalInspectionTool {
public static final String SHORT_NAME = "UnusedAssignment";
/**
* Allows skipping 'redundant initializer inspection' for specific PsiVariable
*/
public interface IgnoreVariableInitializerSupport {
ExtensionPointName<IgnoreVariableInitializerSupport> EP_NAME =
ExtensionPointName.create("com.intellij.lang.jvm.ignoreVariableInitializerSupport");
/**
* @param psiVariable field to be checked to ignore variable initializer
* @return true to skip inspection for {@code psiVariable}
*/
default boolean ignoreVariableInitializer(@NotNull PsiVariable psiVariable) {
return false;
}
}
@Override
public void writeSettings(@NotNull Element node) {
super.writeSettings(node);
@@ -194,9 +177,6 @@ public class DefUseInspection extends AbstractBaseJavaLocalInspectionTool {
if (field.hasModifierProperty(PsiModifier.FINAL)) return;
final PsiClass psiClass = field.getContainingClass();
if (psiClass == null) return;
if (ContainerUtil.exists(IgnoreVariableInitializerSupport.EP_NAME.getExtensionList(), ext -> ext.ignoreVariableInitializer(field))) {
return;
}
final PsiClassInitializer[] classInitializers = psiClass.getInitializers();
final boolean isStatic = field.hasModifierProperty(PsiModifier.STATIC);
final PsiMethod[] constructors = !isStatic ? psiClass.getConstructors() : PsiMethod.EMPTY_ARRAY;

View File

@@ -64,6 +64,7 @@ public class LombokAugmentProvider extends PsiAugmentProvider {
*/
//see de.plushnikov.intellij.plugin.inspection.DataFlowInspectionTest.testDefaultBuilderFinalValueInspectionIsAlwaysThat
//see de.plushnikov.intellij.plugin.inspection.PointlessBooleanExpressionInspectionTest.testPointlessBooleanExpressionBuilderDefault
//see com.intellij.java.lomboktest.LombokHighlightingTest.testBuilderWithDefaultRedundantInitializer
@Override
protected boolean fieldInitializerMightBeChanged(@NotNull PsiField field) {
return PsiAnnotationSearchUtil.isAnnotatedWith(field, LombokClassNames.BUILDER_DEFAULT);

View File

@@ -1,17 +0,0 @@
package de.plushnikov.intellij.plugin.provider;
import com.intellij.codeInspection.defUse.DefUseInspection;
import com.intellij.psi.PsiVariable;
import de.plushnikov.intellij.plugin.LombokClassNames;
import org.jetbrains.annotations.NotNull;
/**
* This class represents a support class for ignoring variable initializers in context of DefUseInspection for lombok features.
* It implements the DefUseInspection.IgnoreVariableInitializerSupport interface.
*/
public class LombokVariableInitializerSupport implements DefUseInspection.IgnoreVariableInitializerSupport {
@Override
public boolean ignoreVariableInitializer(@NotNull PsiVariable psiVariable) {
return psiVariable.hasAnnotation(LombokClassNames.BUILDER_DEFAULT);
}
}

View File

@@ -53,7 +53,6 @@
<lang.psiAugmentProvider implementation="de.plushnikov.intellij.plugin.provider.LombokAugmentProvider"/>
<lang.jvm.annotationPackageSupport implementation="de.plushnikov.intellij.plugin.provider.LombokAnnotationSupport"/>
<lang.jvm.ignoreAnnotationParamSupport implementation="de.plushnikov.intellij.plugin.provider.LombokDefaultAnnotationParamSupport"/>
<lang.jvm.ignoreVariableInitializerSupport implementation="de.plushnikov.intellij.plugin.provider.LombokVariableInitializerSupport"/>
<lang.jvm.ignoreVariableInitializedBeforeUsageSupport implementation="de.plushnikov.intellij.plugin.provider.LombokVariableInitializedBeforeUsageSupport"/>
<lang.jvm.ignoreMethodCallExpressionNPESupport implementation="de.plushnikov.intellij.plugin.provider.LombokMethodCallExpressionNPESupport"/>
<implicitUsageProvider implementation="de.plushnikov.intellij.plugin.provider.LombokImplicitUsageProvider"/>