public function acceptClassFlagVisitor(FlagVisitor $visitor)
{
switch ($this->node->flags) {
case \ast\flags\CLASS_ABSTRACT:
return $visitor->visitClassAbstract($this->node);
case \ast\flags\CLASS_FINAL:
return $visitor->visitClassFinal($this->node);
case \ast\flags\CLASS_INTERFACE:
return $visitor->visitClassInterface($this->node);
case \ast\flags\CLASS_TRAIT:
return $visitor->visitClassTrait($this->node);
case \ast\flags\CLASS_ANONYMOUS:
return $visitor->visitClassAnonymous($this->node);
default:
assert(false, "All flags must match. Found " . Debug::astFlagDescription($this->node->flags ?? 0));
break;
}
}