nodesToReplaceCollector = $nodesToReplaceCollector; $this->rectorChangeCollector = $rectorChangeCollector; $this->nodeRemover = $nodeRemover; $this->livingCodeManipulator = $livingCodeManipulator; } public function removeAssignNode(\PhpParser\Node\Expr\Assign $assign) : void { $currentStatement = $assign->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CURRENT_STATEMENT); $this->livingCodeManipulator->addLivingCodeBeforeNode($assign->var, $currentStatement); /** @var Assign $assign */ $parent = $assign->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::PARENT_NODE); if ($parent instanceof \PhpParser\Node\Stmt\Expression) { $this->nodeRemover->removeNode($assign); } else { $this->nodesToReplaceCollector->addReplaceNodeWithAnotherNode($assign, $assign->expr); $this->rectorChangeCollector->notifyNodeFileInfo($assign->expr); } } }