1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\Node;
4:
5: use Override;
6: use PhpParser\Node\Expr;
7: use PhpParser\Node\Identifier;
8: use PhpParser\Node\Name;
9:
10: /**
11: * @api
12: */
13: final class StaticMethodCallableNode extends Expr implements VirtualNode
14: {
15:
16: public function __construct(
17: private Name|Expr $class,
18: private Identifier|Expr $name,
19: private Expr\StaticCall $originalNode,
20: )
21: {
22: parent::__construct($originalNode->getAttributes());
23: }
24:
25: /**
26: * @return Expr|Name
27: */
28: public function getClass()
29: {
30: return $this->class;
31: }
32:
33: /**
34: * @return Identifier|Expr
35: */
36: public function getName()
37: {
38: return $this->name;
39: }
40:
41: public function getOriginalNode(): Expr\StaticCall
42: {
43: return $this->originalNode;
44: }
45:
46: #[Override]
47: public function getType(): string
48: {
49: return 'PHPStan_Node_StaticMethodCallableNode';
50: }
51:
52: /**
53: * @return string[]
54: */
55: #[Override]
56: public function getSubNodeNames(): array
57: {
58: return [];
59: }
60:
61: }
62: