2121use Twig \Node \Expression \Ternary \ConditionalTernary ;
2222use Twig \Node \Node ;
2323use Twig \Node \Nodes ;
24- use Twig \NodeVisitor \AbstractNodeVisitor ;
24+ use Twig \NodeVisitor \NodeVisitorInterface ;
2525use Twig \TwigFilter ;
2626
2727/**
3232 *
3333 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
3434 */
35- final class DefaultApplyingNodeVisitor extends AbstractNodeVisitor
35+ final class DefaultApplyingNodeVisitor implements NodeVisitorInterface
3636{
3737 /**
3838 * @var bool
@@ -50,14 +50,14 @@ public function doEnterNode(Node $node, Environment $env): Node
5050 return $ node ;
5151 }
5252
53- if (!($ node instanceof FilterExpression && 'desc ' === $ node ->getNode ( ' filter ' )->getAttribute ( ' value ' ))) {
53+ if (!($ node instanceof FilterExpression && 'desc ' === $ node ->getAttribute ( ' twig_callable ' )->getName ( ))) {
5454 return $ node ;
5555 }
5656
5757 $ transNode = $ node ->getNode ('node ' );
5858 while ($ transNode instanceof FilterExpression
59- && 'trans ' !== $ transNode ->getNode ( ' filter ' )->getAttribute ( ' value ' )
60- && 'transchoice ' !== $ transNode ->getNode ( ' filter ' )->getAttribute ( ' value ' )) {
59+ && 'trans ' !== $ transNode ->getAttribute ( ' twig_callable ' )->getName ( )
60+ && 'transchoice ' !== $ transNode ->getAttribute ( ' twig_callable ' )->getName ( )) {
6161 $ transNode = $ transNode ->getNode ('node ' );
6262 }
6363
@@ -72,7 +72,7 @@ public function doEnterNode(Node $node, Environment $env): Node
7272 // if the |transchoice filter is used, delegate the call to the TranslationExtension
7373 // so that we can catch a possible exception when the default translation has not yet
7474 // been extracted
75- if ('transchoice ' === $ transNode ->getNode ( ' filter ' )->getAttribute ( ' value ' )) {
75+ if ('transchoice ' === $ transNode ->getAttribute ( ' twig_callable ' )->getName ( )) {
7676 $ transchoiceArguments = new ArrayExpression ([], $ transNode ->getTemplateLine ());
7777 $ transchoiceArguments ->addElement ($ wrappingNode ->getNode ('node ' ));
7878 $ transchoiceArguments ->addElement ($ defaultNode );
@@ -150,4 +150,14 @@ public function getPriority(): int
150150 {
151151 return -2 ;
152152 }
153+
154+ public function enterNode (Node $ node , Environment $ env ): Node
155+ {
156+ return $ this ->doEnterNode ($ node , $ env );
157+ }
158+
159+ public function leaveNode (Node $ node , Environment $ env ): ?Node
160+ {
161+ return $ this ->doLeaveNode ($ node , $ env );
162+ }
153163}
0 commit comments