diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/dfaassist/DebuggerDfaRunner.java b/java/debugger/impl/src/com/intellij/debugger/engine/dfaassist/DebuggerDfaRunner.java index 4067cfe2b942..765375ded125 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/dfaassist/DebuggerDfaRunner.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/dfaassist/DebuggerDfaRunner.java @@ -161,16 +161,15 @@ public class DebuggerDfaRunner { Set descriptors = StreamEx.of(flow.getInstructions()).flatCollection(inst -> inst.getRequiredDescriptors(factory)) .toSet(); Map> myMap = new HashMap<>(); - for (DfaValue dfaValue : factory.getValues().toArray(DfaValue.EMPTY_ARRAY)) { - StreamEx stream = StreamEx.of(descriptors) - .map(desc -> desc.createValue(factory, dfaValue)) - .append(dfaValue) - .select(DfaVariableValue.class); - for (DfaVariableValue dfaVar : stream) { - Value jdiValue = resolveJdiValue(provider, anchor, proxy, dfaVar); - if (jdiValue != null) { - myMap.computeIfAbsent(jdiValue, v -> new ArrayList<>()).add(dfaVar); - } + StreamEx stream = + StreamEx.of(factory.getValues().toArray(DfaValue.EMPTY_ARRAY)) + .flatMap(dfaValue -> StreamEx.of(descriptors).map(desc -> desc.createValue(factory, dfaValue)).append(dfaValue)) + .select(DfaVariableValue.class) + .distinct(); + for (DfaVariableValue dfaVar : stream) { + Value jdiValue = resolveJdiValue(provider, anchor, proxy, dfaVar); + if (jdiValue != null) { + myMap.computeIfAbsent(jdiValue, v -> new ArrayList<>()).add(dfaVar); } } return myMap;