diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java index 68455f8a40f7..9233f8e29792 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightControlFlowUtil.java @@ -652,7 +652,8 @@ public class HighlightControlFlowUtil { if (!containingFile.getManager().areElementsEquivalent(enclosingCtrOrInitializer.getContainingClass(), field.getContainingClass())) return false; PsiExpression qualifierExpression = reference.getQualifierExpression(); - return qualifierExpression == null || qualifierExpression instanceof PsiThisExpression; + return qualifierExpression == null || (qualifierExpression instanceof PsiThisExpression && + ((PsiThisExpression)qualifierExpression).getQualifier() == null); } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java index e1a9652491a6..d5961186d915 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/AssignToFinal.java @@ -243,3 +243,12 @@ class AssignmentInUnreachablePolyadic { else if (true && (bbbb = false)) ; } } + +class QualifiedThis { + final int x; + + QualifiedThis() { + QualifiedThis.this.x = 5; + this.x = 5; + } +} \ No newline at end of file