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:
10: /**
11: * @api
12: */
13: final class InClassMethodNode extends Node\Stmt implements VirtualNode
14: {
15:
16: public function __construct(
17: private ClassReflection $classReflection,
18: private PhpMethodFromParserNodeReflection $methodReflection,
19: private Node\Stmt\ClassMethod $originalNode,
20: )
21: {
22: parent::__construct($originalNode->getAttributes());
23: }
24:
25: public function getClassReflection(): ClassReflection
26: {
27: return $this->classReflection;
28: }
29:
30: public function getMethodReflection(): PhpMethodFromParserNodeReflection
31: {
32: return $this->methodReflection;
33: }
34:
35: public function getOriginalNode(): Node\Stmt\ClassMethod
36: {
37: return $this->originalNode;
38: }
39:
40: #[Override]
41: public function getType(): string
42: {
43: return 'PHPStan_Stmt_InClassMethodNode';
44: }
45:
46: /**
47: * @return string[]
48: */
49: #[Override]
50: public function getSubNodeNames(): array
51: {
52: return [];
53: }
54:
55: }
56: