in src/expression/StaticKeysetExpression.hack [18:43]
protected static function matchImpl(
this::TNode $node,
): ?Expression<keyset<arraykey>> {
$m = $node->getMembers();
if ($m === null) {
return new self(keyset[]);
}
$in = StaticListExpression::match($m)?->getValue();
if ($in === null) {
return new self(keyset[]);
}
$members = keyset[];
foreach ($in as $item) {
if ($item is int) {
$members[] = $item;
continue;
}
if ($item is string) {
$members[] = $item;
continue;
}
return null;
}
return new self($members);
}