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);
}
}