diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/FieldMayBeStaticInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/FieldMayBeStaticInspection.java index 13bc8ced5ae4..946fe64993f6 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/FieldMayBeStaticInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/FieldMayBeStaticInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.performance; +import com.intellij.codeInsight.daemon.impl.UnusedSymbolUtil; import com.intellij.codeInsight.daemon.impl.analysis.HighlightingFeature; import com.intellij.psi.*; import com.intellij.psi.util.PsiUtil; @@ -76,6 +77,9 @@ public class FieldMayBeStaticInspection extends BaseInspection { // inner class cannot have static declarations in earlier Java versions return; } + if (UnusedSymbolUtil.isImplicitWrite(field)) { + return; + } if (containingClass instanceof PsiAnonymousClass && !HighlightingFeature.INNER_STATICS.isAvailable(containingClass) && !PsiUtil.isCompileTimeConstant(field)) { diff --git a/plugins/lombok/src/test/java/de/plushnikov/intellij/plugin/inspection/LombokFieldMayBeStaticInspectionTest.java b/plugins/lombok/src/test/java/de/plushnikov/intellij/plugin/inspection/LombokFieldMayBeStaticInspectionTest.java new file mode 100644 index 000000000000..2db513e5c55c --- /dev/null +++ b/plugins/lombok/src/test/java/de/plushnikov/intellij/plugin/inspection/LombokFieldMayBeStaticInspectionTest.java @@ -0,0 +1,21 @@ +package de.plushnikov.intellij.plugin.inspection; + +import com.intellij.codeInspection.InspectionProfileEntry; +import com.siyeh.ig.performance.FieldMayBeStaticInspection; + +public class LombokFieldMayBeStaticInspectionTest extends LombokInspectionTest { + + @Override + protected String getBasePath() { + return super.getBasePath() + "/" + TEST_DATA_INSPECTION_DIRECTORY + "/canBeStaticInspection"; + } + + @Override + protected InspectionProfileEntry getInspection() { + return new FieldMayBeStaticInspection(); + } + + public void testDefault() { + doTest(); + } +} diff --git a/plugins/lombok/testData/inspection/canBeStaticInspection/Default.java b/plugins/lombok/testData/inspection/canBeStaticInspection/Default.java new file mode 100644 index 000000000000..5f4ef1301fe3 --- /dev/null +++ b/plugins/lombok/testData/inspection/canBeStaticInspection/Default.java @@ -0,0 +1,15 @@ +import lombok.Builder; + +@Builder +class Main { + @Builder.Default + private final int y = 3; + + void test() { + System.out.println(y); + } + + public void main(String[] args) { + System.out.println(y); + } +} \ No newline at end of file