public function walkClassConstant(O\ClassConstantExpression $expression) { $classExpression = $expression->getClass(); if ($classExpression instanceof O\ValueExpression && strtolower($expression->getName()) === 'class') { $classConstantValue = $this->resolveMagicScopeClassConstant($classExpression->getValue()); if ($classConstantValue === null) { return $expression; } return O\Expression::value($classConstantValue); } return parent::walkClassConstant($this->resolveMagicScopeExpression($expression)); }
public function visitClassConstant(O\ClassConstantExpression $expression) { $this->validateStaticClassName($expression->getClass(), 'class constant'); $this->verifyConstantDefined($expression->getClass()->getValue() . '::' . $expression->getName()); $this->analysis[$expression] = $this->typeSystem->getTypeFromValue($expression->evaluate($this->analysisContext->getEvaluationContext())); }