From b041f6f0e98b4d2ebf7e756cabee2a9f8191ce0b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 2 Sep 2016 16:31:53 +0300 Subject: [PATCH] unused assignment: check lambda body for unused assignments --- .../codeInspection/defUse/DefUseInspectionBase.java | 8 ++++++++ .../inspection/defUse/AssignmentsInLambdaBody.java | 7 +++++++ .../testSrc/com/intellij/codeInspection/DefUseTest.java | 1 + 3 files changed, 16 insertions(+) create mode 100644 java/java-tests/testData/inspection/defUse/AssignmentsInLambdaBody.java diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/defUse/DefUseInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/defUse/DefUseInspectionBase.java index ac49de16e1c2..50eb3d262afd 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/defUse/DefUseInspectionBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/defUse/DefUseInspectionBase.java @@ -54,6 +54,14 @@ public class DefUseInspectionBase extends BaseJavaBatchLocalInspectionTool { public void visitClassInitializer(PsiClassInitializer initializer) { checkCodeBlock(initializer.getBody(), holder, isOnTheFly); } + + @Override + public void visitLambdaExpression(PsiLambdaExpression expression) { + PsiElement body = expression.getBody(); + if (body instanceof PsiCodeBlock) { + checkCodeBlock((PsiCodeBlock)body, holder, isOnTheFly); + } + } }; } diff --git a/java/java-tests/testData/inspection/defUse/AssignmentsInLambdaBody.java b/java/java-tests/testData/inspection/defUse/AssignmentsInLambdaBody.java new file mode 100644 index 000000000000..24332a3525bd --- /dev/null +++ b/java/java-tests/testData/inspection/defUse/AssignmentsInLambdaBody.java @@ -0,0 +1,7 @@ +class Test { + Runnable r = () -> { + int i = 0; + i = 1; + System.out.println(i); + }; +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DefUseTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DefUseTest.java index 24d20074b9fb..8b8b21a4b711 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/DefUseTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/DefUseTest.java @@ -53,6 +53,7 @@ public class DefUseTest extends LightCodeInsightFixtureTestCase { public void testComplexDoubleTryFinally() { doTest(); } public void testComplexTripleTryFinally() { doTest(); } public void testComplexQuintipleTryFinally() { doTest(); } + public void testAssignmentsInLambdaBody() { doTest(); } private void doTest() { myFixture.enableInspections(new DefUseInspection());