SimplifyForEachContext#from: fix nullability problem

EA-107550 - NPE: SimplifyForEachInspection.extractLambdaFromForEach
This commit is contained in:
Tagir Valeev
2017-09-18 15:21:32 +07:00
parent 3bf031bdc2
commit 717076ee3c
2 changed files with 15 additions and 2 deletions
@@ -110,7 +110,7 @@ public class SimplifyForEachInspection extends BaseJavaBatchLocalInspectionTool
}
@Nullable
static PsiLambdaExpression extractLambdaFromForEach(PsiMethodCallExpression call) {
static PsiLambdaExpression extractLambdaFromForEach(@NotNull PsiMethodCallExpression call) {
PsiExpression qualifier = call.getMethodExpression().getQualifierExpression();
if (qualifier == null || !(STREAM_FOREACH.test(call) || isCollectionForEach(call, qualifier))) return null;
PsiExpression arg = call.getArgumentList().getExpressions()[0];
@@ -195,7 +195,8 @@ public class SimplifyForEachInspection extends BaseJavaBatchLocalInspectionTool
return result;
}
static SimplifyForEachContext from(PsiMethodCallExpression call) {
static SimplifyForEachContext from(@Nullable PsiMethodCallExpression call) {
if (call == null) return null;
PsiLambdaExpression lambda = extractLambdaFromForEach(call);
if (lambda == null) return null;
PsiElement lambdaBody = lambda.getBody();
@@ -0,0 +1,12 @@
// "Avoid mutation using Stream API 'count()' operation" "false"
import java.util.*;
public class Main {
// EA-107550 - NPE: SimplifyForEachInspection.extractLambdaFromForEach
void test() {
int x = 0;
class X {X(Runnable r) {}}
new X(() -> <caret>x++);
}
}