private async function writeFailureDetailsAsync()

in src/_Private/ConciseCLIOutput.hack [51:80]


  private async function writeFailureDetailsAsync(
    <<__AcceptDisposable>> IO\WriteHandle $handle,
  ): Awaitable<void> {
    $error_id = 0;
    foreach ($this->getErrors() as $event) {
      $ex = $event->getException();
      $error_id++;

      $header = $this->getMessageHeaderForErrorDetails($error_id, $event);

      $message = $ex->getMessage();
      if ($event is HackTest\TestSkippedProgressEvent) {
        $message = 'Skipped: '.$ex->getMessage();
      } else if ($event is HackTest\FileProgressEvent) {
        $file = $event->getPath();

        $context = $this->getPrettyContext($ex, $file) ??
          $ex->getTraceAsString()
          |> Str\split($$, '#')
          |> Vec\filter($$, $line ==> Str\contains($line, $file))
          |> Vec\map($$, $line ==> Str\strip_prefix($line, '  '))
          |> Str\join($$, "\n");

        if ($context !== '') {
          $message .= "\n\n".$context;
        }
      }
      await $handle->writeAllAsync($header.$message);
    }
  }