diff --git a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java index cc632cae8983..64169e127a6c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/controlFlow/ControlFlowUtil.java @@ -852,6 +852,7 @@ public class ControlFlowUtil { private static PsiReferenceExpression findReferenceTo(PsiElement element, PsiVariable variable) { if (element instanceof PsiReferenceExpression + && !((PsiReferenceExpression)element).isQualified() && ((PsiReferenceExpression)element).resolve() == variable) { return (PsiReferenceExpression)element; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/FieldInitializedUsedInLambda.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/FieldInitializedUsedInLambda.java new file mode 100644 index 000000000000..409670629123 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/highlighting/FieldInitializedUsedInLambda.java @@ -0,0 +1,17 @@ + +import java.util.Comparator; + +class Test { + private final int x; + + public Test(int x) { + this.x = x; + } + + public static final Comparator comparator = (o1, o2) -> { + if (o1.x == o2.x) { + } + this.x != o2.x; + return 0; + }; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaHighlightingTest.java index 868982e18bb8..673a5cfaa44a 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaHighlightingTest.java @@ -32,6 +32,7 @@ public class LambdaHighlightingTest extends LightDaemonAnalyzerTestCase { public void testStaticAccess() { doTest(); } public void testEffectiveFinal() { doTest(); } + public void testFieldInitializedUsedInLambda() {doTest();} public void testReassignUsedVars() { doTest(); } public void testLambdaContext() { doTest(); } public void testReturnTypeCompatibility() { doTest(); }