in src/expression/Expression.hack [20:30]
final public static function match(
HHAST\Node $node,
): ?Expression<TValue> {
$ts = type_structure(static::class, 'TNode');
try {
$node = TypeAssert\matches_type_structure($ts, $node);
} catch (\Throwable $_) {
return null;
}
return static::matchImpl($node);
}