function AnnotationHelper::changeAnnotationNode
1 call to AnnotationHelper::changeAnnotationNode()
- AnnotationHelper::fixAnnotation in vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Helpers/ AnnotationHelper.php
File
-
vendor/
slevomat/ coding-standard/ SlevomatCodingStandard/ Helpers/ AnnotationHelper.php, line 315
Class
- AnnotationHelper
- @internal
Namespace
SlevomatCodingStandard\HelpersCode
private static function changeAnnotationNode(PhpDocTagNode $tagNode, Node $nodeToChange, Node $changedNode) : PhpDocTagNode {
static $visitor;
static $traverser;
if ($visitor === null) {
$visitor = new class extends AbstractNodeVisitor {
/** @var Node */
private $nodeToChange;
/** @var Node */
private $changedNode;
/**
* @return Node|list<Node>|NodeTraverser::*|null
*/
public function enterNode(Node $node) {
if ($node->getAttribute(Attribute::ORIGINAL_NODE) === $this->nodeToChange) {
return $this->changedNode;
}
return null;
}
public function setNodeToChange(Node $nodeToChange) : void {
$this->nodeToChange = $nodeToChange;
}
public function setChangedNode(Node $changedNode) : void {
$this->changedNode = $changedNode;
}
};
}
if ($traverser === null) {
$traverser = new NodeTraverser([
$visitor,
]);
}
$visitor->setNodeToChange($nodeToChange);
$visitor->setChangedNode($changedNode);
[
$changedTagNode,
] = $traverser->traverse([
$tagNode,
]);
return $changedTagNode;
}