mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +07:00
[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:
committed by
intellij-monorepo-bot
parent
a93bf77d6f
commit
67578dcd6c
@@ -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"/>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user