callStaticMethod = $this->classReflection->getMethod('__callStatic', new OutOfClassScope()); } public function getDeclaringClass(): ClassReflection { return $this->classReflection; } public function isStatic(): bool { return true; } public function isPrivate(): bool { return false; } public function isPublic(): bool { return true; } public function getDocComment(): ?string { return $this->callStaticMethod->getDocComment(); } public function getName(): string { return $this->name; } public function getPrototype(): ClassMemberReflection { return $this; } /** * @return ParametersAcceptor[] */ public function getVariants(): array { return [ new FunctionVariant( TemplateTypeMap::createEmpty(), TemplateTypeMap::createEmpty(), [], false, $this->classReflection->getBackedEnumType() ?? new StringType() ), ]; } public function isDeprecated(): TrinaryLogic { return $this->callStaticMethod->isDeprecated(); } public function getDeprecatedDescription(): ?string { return $this->callStaticMethod->getDeprecatedDescription(); } public function isFinal(): TrinaryLogic { return TrinaryLogic::createNo(); } public function isInternal(): TrinaryLogic { return TrinaryLogic::createNo(); } public function getThrowType(): ?Type { return $this->callStaticMethod->getThrowType(); } public function hasSideEffects(): TrinaryLogic { return TrinaryLogic::createNo(); } }