diff --git a/Twig/DefaultApplyingNodeVisitor.php b/Twig/DefaultApplyingNodeVisitor.php index ee9f72fa..9075b0cc 100644 --- a/Twig/DefaultApplyingNodeVisitor.php +++ b/Twig/DefaultApplyingNodeVisitor.php @@ -24,10 +24,10 @@ use Twig\Environment; use Twig\Node\Expression\ArrayExpression; use Twig\Node\Expression\Binary\EqualBinary; -use Twig\Node\Expression\ConditionalExpression; -use Twig\Node\Expression\ConstantExpression; use Twig\Node\Expression\FilterExpression; +use Twig\Node\Expression\Ternary\ConditionalTernary; use Twig\Node\Node; +use Twig\Node\Nodes; use Twig\NodeVisitor\NodeVisitorInterface; /** @@ -85,18 +85,18 @@ public function enterNode(Node $node, Environment $env): Node // remove the replacements from the test node $testNodeArguments = iterator_to_array($testNode->getNode('arguments')); $testNodeArguments[0] = new ArrayExpression([], $lineno); - $testNode->setNode('arguments', new Node($testNodeArguments)); + $testNode->setNode('arguments', new Nodes($testNodeArguments)); // wrap the default node in a |replace filter $defaultNode = new FilterExpression( $arguments[0], - new ConstantExpression('replace', $lineno), - new Node([$wrappingNodeArguments[0]]), + $env->getFilter('replace'), + new Nodes([$wrappingNodeArguments[0]]), $lineno ); } - $condition = new ConditionalExpression( + $condition = new ConditionalTernary( new EqualBinary($testNode, $transNode->getNode('node'), $wrappingNode->getTemplateLine()), $defaultNode, clone $wrappingNode,