protected static function matchImpl()

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);
  }