From 6585349abcf5621746b8cc8086bd189ee6844bef Mon Sep 17 00:00:00 2001 From: anna Date: Fri, 16 Apr 2010 21:54:04 +0400 Subject: [PATCH] field can be local: revert optimization (IDEA-53992) --- .../varScopeCanBeNarrowed/FieldCanBeLocalInspection.java | 2 +- .../innerClassFieldInitializer/expected.xml | 2 ++ .../innerClassFieldInitializer/src/Test.java | 7 +++++++ .../com/intellij/codeInspection/FieldCanBeLocalTest.java | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/expected.xml create mode 100644 java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/src/Test.java diff --git a/java/java-impl/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java b/java/java-impl/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java index 71a89c534f37..c22da9f943d1 100644 --- a/java/java-impl/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/varScopeCanBeNarrowed/FieldCanBeLocalInspection.java @@ -197,7 +197,7 @@ public class FieldCanBeLocalInspection extends BaseLocalInspectionTool { @Override public void visitReferenceExpression(PsiReferenceExpression expression) { final PsiExpression qualifier = expression.getQualifierExpression(); - if (qualifier == null || qualifier instanceof PsiThisExpression && ((PsiThisExpression)qualifier).getQualifier() == null) { + if (qualifier == null || qualifier instanceof PsiThisExpression) { final PsiElement resolved = expression.resolve(); if (resolved instanceof PsiField) { final PsiField field = (PsiField)resolved; diff --git a/java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/expected.xml b/java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/expected.xml new file mode 100644 index 000000000000..4704d91e891d --- /dev/null +++ b/java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/expected.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/src/Test.java b/java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/src/Test.java new file mode 100644 index 000000000000..018f6498b391 --- /dev/null +++ b/java/java-tests/testData/inspection/fieldCanBeLocal/innerClassFieldInitializer/src/Test.java @@ -0,0 +1,7 @@ +public class Outer { + private int value = 0; + + public class Inner { + private final int myValue = Outer.this.value; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/FieldCanBeLocalTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/FieldCanBeLocalTest.java index 0cec8f0eb285..5ebd2c2cf9f6 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/FieldCanBeLocalTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/FieldCanBeLocalTest.java @@ -29,4 +29,5 @@ public class FieldCanBeLocalTest extends InspectionTestCase { public void testStateField() throws Exception { doTest(); } public void testLocalStateVar2InnerClass() throws Exception { doTest(); } public void testNotConstantInitializer() throws Exception {doTest();} + public void testInnerClassFieldInitializer() throws Exception {doTest();} }