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