@Override
  public void buildChildren(Value value, ChildrenBuilder builder, EvaluationContext evaluationContext) {
    EvaluationContextImpl evaluationContextImpl = (EvaluationContextImpl)evaluationContext;
    evaluationContextImpl.getDebugProcess().getManagerThread().schedule(new PossiblySyncCommand(evaluationContextImpl.getSuspendContext()) {
      @Override
      public void syncAction(@NotNull SuspendContextImpl suspendContext) {
        try {
          ValueDescriptor parentDescriptor = builder.getParentDescriptor();
          Value childrenValue = evaluateChildren(evaluationContext.createEvaluationContext(value), parentDescriptor);

          DebuggerUtilsAsync.type(childrenValue)
            .thenAccept(type -> getChildrenRenderer(type, parentDescriptor).buildChildren(childrenValue, builder, evaluationContext));
        }
        catch (EvaluateException e) {
          builder.setErrorMessage(JavaDebuggerBundle.message("error.unable.to.evaluate.children.expression") + " " + e.getMessage());
          // fallback to the default renderer
          DebugProcessImpl.getDefaultRenderer(value).buildChildren(value, builder, evaluationContext);
        }
      }
    });
  }
@Override
  public void buildChildren(Value value, ChildrenBuilder builder, EvaluationContext evaluationContext)