1<?php declare(strict_types=1); 2 3namespace PhpParser\Node\Stmt\TraitUseAdaptation; 4 5use PhpParser\Node; 6 7class Precedence extends Node\Stmt\TraitUseAdaptation { 8 /** @var Node\Name[] Overwritten traits */ 9 public array $insteadof; 10 11 /** 12 * Constructs a trait use precedence adaptation node. 13 * 14 * @param Node\Name $trait Trait name 15 * @param string|Node\Identifier $method Method name 16 * @param Node\Name[] $insteadof Overwritten traits 17 * @param array<string, mixed> $attributes Additional attributes 18 */ 19 public function __construct(Node\Name $trait, $method, array $insteadof, array $attributes = []) { 20 $this->attributes = $attributes; 21 $this->trait = $trait; 22 $this->method = \is_string($method) ? new Node\Identifier($method) : $method; 23 $this->insteadof = $insteadof; 24 } 25 26 public function getSubNodeNames(): array { 27 return ['trait', 'method', 'insteadof']; 28 } 29 30 public function getType(): string { 31 return 'Stmt_TraitUseAdaptation_Precedence'; 32 } 33} 34