in src/HHClientFallbackHandler.hack [222:251]
private function lookupPathImpl(string $kind, string $name): ?string {
$cmd = Vec\map(
vec['hh_client', '--json', '--search-'.$kind, $name],
$x ==> \escapeshellarg($x),
);
$cmd = \implode(' ', $cmd);
$exit_code = null;
$_output = varray[];
$last = \exec($cmd, inout $_output, inout $exit_code);
if ($exit_code !== 0) {
return null;
}
$data = \json_decode($last, /* assoc = */ true);
if (!$data is Traversable<_>) {
return null;
}
foreach ($data as $row) {
$row as KeyedContainer<_, _>;
if ($row['name'] === $name) {
$file = $row['filename'] as ?string;
if ($file is null || \substr($file, -4) === '.hhi') {
return null;
}
return $file;
}
}
return null;
}