in src/CodegenFile.hack [460:486]
private function loadExistingFiles(): ?string {
$file_names = $this->otherFileNames;
$file_names[] = $this->fileName;
$all_content = varray[];
foreach ($file_names as $file_name) {
if (\file_exists($file_name)) {
$content = Filesystem::readFile($file_name);
if ($content !== '') {
$root_dir = $this->config->getRootDir();
$relative_path = Str\starts_with($file_name, $root_dir)
? Str\slice($file_name, Str\length($root_dir) + 1)
: $file_name;
if (!$this->doClobber) {
if (!SignedSourceBase::isSignedByAnySigner($content)) {
throw new CodegenFileNoSignatureException($relative_path);
}
if (!SignedSourceBase::hasValidSignatureFromAnySigner($content)) {
throw new CodegenFileBadSignatureException($relative_path);
}
}
}
$all_content[] = $content;
}
}
return Str\join($all_content, '');
}