1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\Node;
4:
5: use Override;
6: use PhpParser\Node;
7: use PhpParser\NodeAbstract;
8:
9: /**
10: * @api
11: */
12: final class FileNode extends NodeAbstract implements VirtualNode
13: {
14:
15: /**
16: * @param Node[] $nodes
17: */
18: public function __construct(private array $nodes)
19: {
20: $firstNode = $nodes[0] ?? null;
21: parent::__construct($firstNode !== null ? $firstNode->getAttributes() : []);
22: }
23:
24: /**
25: * @return Node[]
26: */
27: public function getNodes(): array
28: {
29: return $this->nodes;
30: }
31:
32: #[Override]
33: public function getType(): string
34: {
35: return 'PHPStan_Node_FileNode';
36: }
37:
38: /**
39: * @return string[]
40: */
41: #[Override]
42: public function getSubNodeNames(): array
43: {
44: return [];
45: }
46:
47: }
48: