diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java index 87ad7d9f6756..96066c34eefe 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java @@ -433,6 +433,7 @@ public class AnonymousCanBeLambdaInspection extends BaseJavaBatchLocalInspection if (resolved instanceof PsiField && ((PsiField)resolved).getContainingClass() == field.getContainingClass()) { final PsiExpression initializer = ((PsiField)resolved).getInitializer(); if (initializer == null || + resolved == field || initializer.getTextOffset() > myAnonymClass.getTextOffset() && !((PsiField)resolved).hasModifierProperty(PsiModifier.STATIC)) { myBodyContainsForbiddenRefs = true; return; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeSelfReference.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeSelfReference.java new file mode 100644 index 000000000000..7160a62ffbc3 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeSelfReference.java @@ -0,0 +1,9 @@ +// "Replace with lambda" "false" +class Test { + Runnable runnable = new Runnable() { + @Override + public void run() { + System.out.println(runnable); + } + }; +} \ No newline at end of file