From 7b5eca32137637bdbfa3233c18900ac5db03cb15 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Sun, 18 Nov 2018 10:05:07 +0700 Subject: [PATCH] CollectMigration#targetReferences: null-check Fixes EA-131234 - IAE: ReferencesSearch.$$$reportNull$$$ --- .../codeInspection/streamMigration/CollectMigration.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java b/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java index 6244aa4dd3b0..f94114fced80 100644 --- a/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java +++ b/java/java-impl/src/com/intellij/codeInspection/streamMigration/CollectMigration.java @@ -159,11 +159,11 @@ class CollectMigration extends BaseStreamApiMigration { } abstract static class CollectTerminal { - private final PsiLocalVariable myTargetVariable; + private final @Nullable PsiLocalVariable myTargetVariable; private final InitializerUsageStatus myStatus; private final PsiStatement myLoop; - protected CollectTerminal(PsiLocalVariable variable, PsiStatement loop, InitializerUsageStatus status) { + protected CollectTerminal(@Nullable PsiLocalVariable variable, PsiStatement loop, InitializerUsageStatus status) { myTargetVariable = variable; myLoop = loop; myStatus = status; @@ -180,6 +180,7 @@ class CollectMigration extends BaseStreamApiMigration { abstract String generateIntermediate(CommentTracker ct); StreamEx targetReferences() { + if (myTargetVariable == null) return StreamEx.empty(); List usedElements = usedElements().toList(); return StreamEx.of(ReferencesSearch.search(myTargetVariable).findAll()).select(PsiReferenceExpression.class) .filter(ref -> usedElements.stream().noneMatch(allowedUsage -> PsiTreeUtil.isAncestor(allowedUsage, ref, false)));