public function acceptTypeFlagVisitor(FlagVisitor $visitor)
{
switch ($this->node->flags) {
case \ast\flags\TYPE_ARRAY:
return $visitor->visitUnionTypeArray($this->node);
case \ast\flags\TYPE_BOOL:
return $visitor->visitUnionTypeBool($this->node);
case \ast\flags\TYPE_CALLABLE:
return $visitor->visitUnionTypeCallable($this->node);
case \ast\flags\TYPE_DOUBLE:
return $visitor->visitUnionTypeDouble($this->node);
case \ast\flags\TYPE_LONG:
return $visitor->visitUnionTypeLong($this->node);
case \ast\flags\TYPE_NULL:
return $visitor->visitUnionTypeNull($this->node);
case \ast\flags\TYPE_OBJECT:
return $visitor->visitUnionTypeObject($this->node);
case \ast\flags\TYPE_STRING:
return $visitor->visitUnionTypeString($this->node);
default:
assert(false, "All flags must match. Found " . Debug::astFlagDescription($this->node->flags ?? 0));
break;
}
}