diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java index e71d13c91f1f..c3bee77038d4 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/LocalsOrMyInstanceFieldsControlFlowPolicy.java @@ -25,6 +25,7 @@ package com.intellij.psi.controlFlow; import com.intellij.psi.*; +import com.intellij.psi.util.PsiUtil; import org.jetbrains.annotations.NotNull; public class LocalsOrMyInstanceFieldsControlFlowPolicy implements ControlFlowPolicy { @@ -35,7 +36,7 @@ public class LocalsOrMyInstanceFieldsControlFlowPolicy implements ControlFlowPol @Override public PsiVariable getUsedVariable(@NotNull PsiReferenceExpression refExpr) { - PsiExpression qualifier = refExpr.getQualifierExpression(); + PsiExpression qualifier = PsiUtil.skipParenthesizedExprDown(refExpr.getQualifierExpression()); if (qualifier == null || qualifier instanceof PsiThisExpression) { PsiElement resolved = refExpr.resolve(); if (!(resolved instanceof PsiVariable)) return null; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/VariableUsedBeforeAssignmentWithParenthesis.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/VariableUsedBeforeAssignmentWithParenthesis.java new file mode 100644 index 000000000000..46157f4d39a8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting6/VariableUsedBeforeAssignmentWithParenthesis.java @@ -0,0 +1,11 @@ + + +class Unassigned { + public final int a; + public int b; + + Unassigned(int value) { + b = (this).a; + a = value; + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java index 428390c027de..96adb6afc01b 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/LightAdvHighlightingJdk6Test.java @@ -72,4 +72,7 @@ public class LightAdvHighlightingJdk6Test extends LightDaemonAnalyzerTestCase { public void testSkipAbstractMethodsIfTheyMustBeDeclaredInNonAbstractSuperclass() { doTest(false, false); } + public void testVariableUsedBeforeAssignmentWithParenthesis() { + doTest(false, false); + } }