From b29779ed87c5b6754493a764b2515742cc6538ad Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 25 Sep 2015 12:39:13 +0300 Subject: [PATCH] local can be final: don't ignore problems found in lambda body (IDEA-145500) --- .../localCanBeFinal/LocalCanBeFinal.java | 2 +- .../localCanBeFinal/LambdaBody/expected.xml | 12 ++++++++++-- .../localCanBeFinal/LambdaBody/src/Junk.java | 10 ++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java index 6f1f69b01aa3..51250f24e3e4 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java @@ -265,7 +265,7 @@ public class LocalCanBeFinal extends BaseJavaBatchLocalInspectionTool { } } - if (result.isEmpty()) return null; + if (result.isEmpty() && problems.isEmpty()) return null; for (PsiVariable variable : result) { final PsiIdentifier nameIdentifier = variable.getNameIdentifier(); diff --git a/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml index 1da1935ad438..889d6bc2624b 100644 --- a/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml +++ b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/expected.xml @@ -2,13 +2,21 @@ Junk.java - 4 + 6 + + Local variable or parameter can be final + Variable <code>cc</code> can have <code>final</code> modifier + + + + Junk.java + 14 Local variable or parameter can be final Variable <code>i</code> can have <code>final</code> modifier Junk.java - 3 + 13 Local variable or parameter can be final Variable <code>r</code> can have <code>final</code> modifier diff --git a/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java index f89a1e2f4786..415c887263ed 100644 --- a/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java +++ b/java/java-tests/testData/inspection/localCanBeFinal/LambdaBody/src/Junk.java @@ -1,3 +1,13 @@ +import java.util.HashMap; + +class Issue { + public static void filterMap() { + new HashMap().forEach((s1, s2) -> { + String cc = s1 + s2; + System.err.println(cc); + }); + } +} public final class Junk { public void sillyMethod() { Runnable r = () -> {