> */ public function getNodeTypes() : array { return [Encapsed::class]; } /** * @param Encapsed $node */ public function refactor(Node $node) : ?Node { $startTokenPos = $node->getStartTokenPos(); $hasVariableBeenWrapped = \false; foreach ($node->parts as $index => $nodePart) { if ($nodePart instanceof Variable) { $previousNode = $node->parts[$index - 1] ?? null; $previousNodeEndTokenPosition = $previousNode instanceof Node ? $previousNode->getEndTokenPos() : $startTokenPos; if ($previousNodeEndTokenPosition + 1 === $nodePart->getStartTokenPos()) { $hasVariableBeenWrapped = \true; $node->parts[$index] = new Variable($nodePart->name); } } } if (!$hasVariableBeenWrapped) { return null; } return $node; } }