function merge_scopes()

in src/consumers/merge_scopes.hack [15:36]


function merge_scopes(
  ?HHAST\Node $ast,
  ScannedDefinition::TContext $context,
  vec<ScannedScope> $scopes,
): ScannedScope {
  return new ScannedScope(
    $ast,
    $context,
    Vec\map($scopes, $s ==> $s->getClasses()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getInterfaces()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getTraits()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getFunctions()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getMethods()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getUsedTraits()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getProperties()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getConstants()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getTypeConstants()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getEnums()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getTypes()) |> Vec\flatten($$),
    Vec\map($scopes, $s ==> $s->getNewtypes()) |> Vec\flatten($$),
  );
}