public function replaceChild(ContextInterface $context, AbstractBlock $original, AbstractBlock $replacement)
{
if (($index = $this->children->indexOf($original)) !== false) {
$this->children->remove($index);
$replacement->setParent($this);
$this->children->set($index, $replacement);
} else {
$this->addChild($replacement);
}
if ($context->getTip() === $original) {
$context->setTip($replacement);
}
}