in src/build/GuidesIndexBuildStep.php [30:73]
private function createIndex(Traversable<string> $list): void {
$index = $this->generateIndexData($list);
$cg = $this->getCodegenFactory();
$cg->codegenFile(BuildPaths::GUIDES_INDEX)
->setNamespace("HHVM\\UserDocumentation")
->addClass(
$cg->codegenClass('GuidesIndexData')
->setIsFinal(true)
->setIsAbstract(true)
->addMethod(
$cg->codegenMethod('getIndex')
->setIsStatic(true)
->setReturnType(
'dict<GuidesProduct, dict<string, dict<string, string>>>',
)
->setBody(
$cg->codegenHackBuilder()
->addReturn(
$index,
CG\HackBuilderValues::dict(
CG\HackBuilderKeys::lambda(
($_, $p) ==> Str\format(
'GuidesProduct::%s',
GuidesProduct::getNames()[$p],
),
),
CG\HackBuilderValues::dict(
CG\HackBuilderKeys::export(),
CG\HackBuilderValues::dict(
CG\HackBuilderKeys::export(),
CG\HackBuilderValues::export(),
),
),
),
)
->getCode(),
),
),
)
->save();
// Make it available to later build steps
require_once(BuildPaths::GUIDES_INDEX);
}