public function getConst() : GlobalConstant
{
assert($this->node->kind === \ast\AST_CONST, "Node must be of type \\ast\\AST_CONST");
if ($this->node->children['name']->kind !== \ast\AST_NAME) {
throw new NodeException($this->node, "Can't determine constant name");
}
$constant_name = $this->node->children['name']->children['name'];
$fqsen = FullyQualifiedGlobalConstantName::fromStringInContext($constant_name, $this->context);
if (!$this->code_base->hasGlobalConstantWithFQSEN($fqsen)) {
$fqsen = FullyQualifiedGlobalConstantName::fromFullyQualifiedString($constant_name);
if (!$this->code_base->hasGlobalConstantWithFQSEN($fqsen)) {
throw new IssueException(Issue::fromType(Issue::UndeclaredConstant)($this->context->getFile(), $this->node->lineno ?? 0, [$fqsen]));
}
}
return $this->code_base->getGlobalConstantByFQSEN($fqsen);
}