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 808af618006b..87791a12f50b 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/AnonymousCanBeLambdaInspection.java @@ -511,6 +511,7 @@ public class AnonymousCanBeLambdaInspection extends BaseJavaBatchLocalInspection final PsiElement resolved = expression.resolve(); if (resolved instanceof PsiField && ((PsiField)resolved).hasModifierProperty(PsiModifier.FINAL) && + ((PsiField)resolved).getInitializer() == null && ((PsiField)resolved).getContainingClass() == method.getContainingClass()) { try { final PsiCodeBlock constructorBody = method.getBody(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/afterInitializedFinalFieldInConstructor.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/afterInitializedFinalFieldInConstructor.java new file mode 100644 index 000000000000..d934fa2ec7ef --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/afterInitializedFinalFieldInConstructor.java @@ -0,0 +1,7 @@ +// "Replace with lambda" "true" +class HelloLambda { + public HelloLambda() { + Runnable r = () -> System.out.println(x); + } + private final int x = 0; +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeInitializedFinalFieldInConstructor.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeInitializedFinalFieldInConstructor.java new file mode 100644 index 000000000000..0b505b590b5a --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/anonymous2lambda/beforeInitializedFinalFieldInConstructor.java @@ -0,0 +1,12 @@ +// "Replace with lambda" "true" +class HelloLambda { + public HelloLambda() { + Runnable r = new Runnable() { + @Override + public void run () { + System.out.println(x); + } + } ; + } + private final int x = 0; +} \ No newline at end of file