private function compileClassConstFetch(Node\Expr\ClassConstFetch $node, CompilerContext $context)
{
$className = implode('\\', $node->class->parts);
if ($node->name === 'class') {
return substr((string) (new ResolveTypes())->__invoke([$className], (new ContextFactory())->createForNamespace($context->getSelf()->getNamespaceName(), $context->getSelf()->getLocatedSource()->getSource()))[0]->getFqsen(), 1);
}
$classInfo = null;
if ('self' === $className || 'static' === $className) {
$classInfo = $context->getSelf();
}
if (null === $classInfo) {
$classInfo = $context->getReflector()->reflect($className);
}
/* @var ReflectionClass $classInfo */
$constName = $node->name;
return $classInfo->getConstant($constName);
}