mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-116732 Field can be converted to a local variable
This commit is contained in:
@@ -1270,10 +1270,11 @@ class ControlFlowAnalyzer extends JavaElementVisitor {
|
||||
PsiExpression lExpr = PsiUtil.skipParenthesizedExprDown(expression.getLExpression());
|
||||
if (lExpr instanceof PsiReferenceExpression) {
|
||||
final PsiReferenceExpression referenceExpression = (PsiReferenceExpression)lExpr;
|
||||
if (!referenceExpression.isQualified()
|
||||
|| referenceExpression.getQualifierExpression() instanceof PsiThisExpression) {
|
||||
|
||||
PsiVariable variable = getUsedVariable(referenceExpression);
|
||||
PsiExpression qualifierExpression = referenceExpression.getQualifierExpression();
|
||||
PsiVariable variable = getUsedVariable(referenceExpression);
|
||||
if (qualifierExpression == null ||
|
||||
qualifierExpression instanceof PsiThisExpression ||
|
||||
variable instanceof PsiField && variable.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
if (variable != null) {
|
||||
if (myAssignmentTargetsAreElements)
|
||||
startElement(lExpr);
|
||||
@@ -1285,7 +1286,6 @@ class ControlFlowAnalyzer extends JavaElementVisitor {
|
||||
|
||||
if (myAssignmentTargetsAreElements) finishElement(lExpr);
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
lExpr.accept(this); //?
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<problems>
|
||||
</problems>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
class G{
|
||||
private static boolean foo = true;
|
||||
static void bar(){
|
||||
if(foo)
|
||||
G.foo = false;
|
||||
}
|
||||
}
|
||||
@@ -38,6 +38,7 @@ public class FieldCanBeLocalTest extends InspectionTestCase {
|
||||
public void testFieldUsedInConstantInitialization() throws Exception {doTest();}
|
||||
public void testFieldWithImmutableType() throws Exception {doTest();}
|
||||
public void testFieldUsedForWritingInLambda() throws Exception {doTest();}
|
||||
public void testStaticQualifiedFieldAccessForWriting() throws Exception {doTest();}
|
||||
public void testIgnoreAnnotated() throws Exception {
|
||||
final FieldCanBeLocalInspection inspection = new FieldCanBeLocalInspection();
|
||||
doTestConfigured(inspection);
|
||||
|
||||
Reference in New Issue
Block a user