mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java-inspections] Field can be made static: respect implicit writes
Fixes IDEA-313564 "Field can be made 'static'" false positive with Lombok GitOrigin-RevId: f9e6acb2a4e673bebe9d6379d9a5e5869708b107
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8751911652
commit
af86126749
+4
@@ -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)) {
|
||||
|
||||
+21
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user