public function testFromNode() { $node = new Node\Scalar\LNumber(5); $exception = InvalidAbstractFunctionNodeType::fromNode($node); $this->assertInstanceOf(InvalidAbstractFunctionNodeType::class, $exception); $this->assertSame(sprintf('Node for "%s" must be "%s" or "%s", was a "%s"', ReflectionFunctionAbstract::class, Node\Stmt\ClassMethod::class, Node\FunctionLike::class, Node\Scalar\LNumber::class), $exception->getMessage()); }
/** * Populate the common elements of the function abstract. * * @param Reflector $reflector * @param Node\Stmt\ClassMethod|Node\FunctionLike|Node\Stmt|Node $node * @param LocatedSource $locatedSource * @param NamespaceNode|null $declaringNamespace */ protected function populateFunctionAbstract(Reflector $reflector, Node $node, LocatedSource $locatedSource, NamespaceNode $declaringNamespace = null) { if (!$node instanceof Node\Stmt\ClassMethod && !$node instanceof Node\FunctionLike) { throw Exception\InvalidAbstractFunctionNodeType::fromNode($node); } $this->reflector = $reflector; $this->node = $node; $this->locatedSource = $locatedSource; $this->declaringNamespace = $declaringNamespace; $this->setNodeOptionalFlag(); }