protected static function matchImpl()

in src/expression/StaticShapeExpression.hack [18:33]


  protected static function matchImpl(
    this::TNode $node,
  ): ?Expression<darray<arraykey, mixed>> {
    $members = $node->getFields();
    $members = $members?->getChildrenOfItemsOfType(HHAST\Node::class) ?? vec[];
    $ret = darray[];
    foreach ($members as $m) {
      $pair = StaticFieldInitializerExpression::match($m);
      if ($pair === null) {
        return null;
      }
      list($key, $value) = $pair->getValue();
      $ret[$key] = $value;
    }
    return new self($ret);
  }