mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java-psi] ControlFlowUtil: avoid storing null mappings into the map
This improves performance and makes the code clearer GitOrigin-RevId: 2b8d9ae1b354f2a2018e313b2009209e0f7f8ef3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
16920f7f48
commit
9d80ffaa8a
@@ -14,6 +14,7 @@ import com.intellij.util.*;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.UnmodifiableHashMap;
|
||||
import it.unimi.dsi.fastutil.ints.*;
|
||||
import one.util.streamex.StreamEx;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -2588,7 +2589,9 @@ public final class ControlFlowUtil {
|
||||
|
||||
if (latestWriteVarExpression == null) {
|
||||
final PsiReferenceExpression expression = getExpression(myFlow.getElement(offset));
|
||||
writeVars = writeVars.with(variable, expression);
|
||||
if (expression != null) {
|
||||
writeVars = writeVars.with(variable, expression);
|
||||
}
|
||||
}
|
||||
else {
|
||||
writeTwiceVars = writeTwiceVars.with(variable, latestWriteVarExpression);
|
||||
@@ -2615,12 +2618,8 @@ public final class ControlFlowUtil {
|
||||
if (writeVars.isEmpty()) return null;
|
||||
|
||||
PsiManager psiManager = variable.getManager();
|
||||
for (Map.Entry<PsiVariable, PsiReferenceExpression> variableInfo : writeVars.entrySet()) {
|
||||
if (psiManager.areElementsEquivalent(variableInfo.getKey(), variable)) {
|
||||
return variableInfo.getValue();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
return StreamEx.ofValues(writeVars, v -> psiManager.areElementsEquivalent(v, variable))
|
||||
.findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user