TraceInfo (@NotNull StreamCall call, @NotNull Value value) { if (value instanceof ArrayReference trace) { final Value before = trace.getValue(0); final Value after = trace.getValue(1); if (before instanceof ArrayReference && after instanceof ArrayReference) { final Map<Integer, TraceElement> beforeTrace = resolveTrace((ArrayReference)before); final Map<Integer, TraceElement> afterTrace = resolveTrace((ArrayReference)after); return new ValuesOrderInfo(call, beforeTrace, afterTrace); } } throw new UnexpectedValueException("peek operation trace is wrong format"); }