1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\Node;
4:
5: use Override;
6: use PhpParser\Node;
7: use PHPStan\Reflection\ClassReflection;
8: use PHPStan\Reflection\Php\PhpMethodFromParserNodeReflection;
9: use PHPStan\Turbo\ReferencedByTurboExtension;
10:
11: /**
12: * @api
13: */
14: #[ReferencedByTurboExtension(key: 'inClassMethodNode')]
15: final class InClassMethodNode extends Node\Stmt implements VirtualNode
16: {
17:
18: public function __construct(
19: private ClassReflection $classReflection,
20: private PhpMethodFromParserNodeReflection $methodReflection,
21: private Node\Stmt\ClassMethod $originalNode,
22: )
23: {
24: parent::__construct($originalNode->getAttributes());
25: }
26:
27: public function getClassReflection(): ClassReflection
28: {
29: return $this->classReflection;
30: }
31:
32: public function getMethodReflection(): PhpMethodFromParserNodeReflection
33: {
34: return $this->methodReflection;
35: }
36:
37: public function getOriginalNode(): Node\Stmt\ClassMethod
38: {
39: return $this->originalNode;
40: }
41:
42: #[Override]
43: public function getType(): string
44: {
45: return 'PHPStan_Stmt_InClassMethodNode';
46: }
47:
48: /**
49: * @return string[]
50: */
51: #[Override]
52: public function getSubNodeNames(): array
53: {
54: return [];
55: }
56:
57: }
58: