diff --git a/src/Symfony/Bridge/Twig/Node/DumpNode.php b/src/Symfony/Bridge/Twig/Node/DumpNode.php index 4b710f82cb42e..01a2eef8a78ae 100644 --- a/src/Symfony/Bridge/Twig/Node/DumpNode.php +++ b/src/Symfony/Bridge/Twig/Node/DumpNode.php @@ -11,6 +11,7 @@ namespace Symfony\Bridge\Twig\Node; +use Twig\Attribute\FirstClassTwigCallableReady; use Twig\Attribute\YieldReady; use Twig\Compiler; use Twig\Node\Node; @@ -30,7 +31,12 @@ public function __construct(string $varPrefix, ?Node $values, int $lineno, ?stri $nodes['values'] = $values; } - parent::__construct($nodes, [], $lineno, $tag); + if (class_exists(FirstClassTwigCallableReady::class)) { + parent::__construct($nodes, [], $lineno); + } else { + parent::__construct($nodes, [], $lineno, $tag); + } + $this->varPrefix = $varPrefix; } diff --git a/src/Symfony/Bridge/Twig/Node/FormThemeNode.php b/src/Symfony/Bridge/Twig/Node/FormThemeNode.php index e38557ceacbce..1d077097f119f 100644 --- a/src/Symfony/Bridge/Twig/Node/FormThemeNode.php +++ b/src/Symfony/Bridge/Twig/Node/FormThemeNode.php @@ -12,6 +12,7 @@ namespace Symfony\Bridge\Twig\Node; use Symfony\Component\Form\FormRenderer; +use Twig\Attribute\FirstClassTwigCallableReady; use Twig\Attribute\YieldReady; use Twig\Compiler; use Twig\Node\Node; @@ -24,7 +25,11 @@ final class FormThemeNode extends Node { public function __construct(Node $form, Node $resources, int $lineno, ?string $tag = null, bool $only = false) { - parent::__construct(['form' => $form, 'resources' => $resources], ['only' => $only], $lineno, $tag); + if (class_exists(FirstClassTwigCallableReady::class)) { + parent::__construct(['form' => $form, 'resources' => $resources], ['only' => $only], $lineno); + } else { + parent::__construct(['form' => $form, 'resources' => $resources], ['only' => $only], $lineno, $tag); + } } public function compile(Compiler $compiler): void diff --git a/src/Symfony/Bridge/Twig/Node/StopwatchNode.php b/src/Symfony/Bridge/Twig/Node/StopwatchNode.php index 9a69d4eff39fc..239d1ca654bca 100644 --- a/src/Symfony/Bridge/Twig/Node/StopwatchNode.php +++ b/src/Symfony/Bridge/Twig/Node/StopwatchNode.php @@ -11,6 +11,7 @@ namespace Symfony\Bridge\Twig\Node; +use Twig\Attribute\FirstClassTwigCallableReady; use Twig\Attribute\YieldReady; use Twig\Compiler; use Twig\Node\Expression\AssignNameExpression; @@ -26,7 +27,11 @@ final class StopwatchNode extends Node { public function __construct(Node $name, Node $body, AssignNameExpression $var, int $lineno = 0, ?string $tag = null) { - parent::__construct(['body' => $body, 'name' => $name, 'var' => $var], [], $lineno, $tag); + if (class_exists(FirstClassTwigCallableReady::class)) { + parent::__construct(['body' => $body, 'name' => $name, 'var' => $var], [], $lineno); + } else { + parent::__construct(['body' => $body, 'name' => $name, 'var' => $var], [], $lineno, $tag); + } } public function compile(Compiler $compiler): void diff --git a/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php b/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php index d24d7f75f236b..28cb6f1b4b2d3 100644 --- a/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php +++ b/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php @@ -11,6 +11,7 @@ namespace Symfony\Bridge\Twig\Node; +use Twig\Attribute\FirstClassTwigCallableReady; use Twig\Attribute\YieldReady; use Twig\Compiler; use Twig\Node\Expression\AbstractExpression; @@ -24,7 +25,11 @@ final class TransDefaultDomainNode extends Node { public function __construct(AbstractExpression $expr, int $lineno = 0, ?string $tag = null) { - parent::__construct(['expr' => $expr], [], $lineno, $tag); + if (class_exists(FirstClassTwigCallableReady::class)) { + parent::__construct(['expr' => $expr], [], $lineno); + } else { + parent::__construct(['expr' => $expr], [], $lineno, $tag); + } } public function compile(Compiler $compiler): void diff --git a/src/Symfony/Bridge/Twig/Node/TransNode.php b/src/Symfony/Bridge/Twig/Node/TransNode.php index 0224d46ae0e50..a711a7cab59cb 100644 --- a/src/Symfony/Bridge/Twig/Node/TransNode.php +++ b/src/Symfony/Bridge/Twig/Node/TransNode.php @@ -11,6 +11,7 @@ namespace Symfony\Bridge\Twig\Node; +use Twig\Attribute\FirstClassTwigCallableReady; use Twig\Attribute\YieldReady; use Twig\Compiler; use Twig\Node\Expression\AbstractExpression; @@ -42,7 +43,11 @@ public function __construct(Node $body, ?Node $domain = null, ?AbstractExpressio $nodes['locale'] = $locale; } - parent::__construct($nodes, [], $lineno, $tag); + if (class_exists(FirstClassTwigCallableReady::class)) { + parent::__construct($nodes, [], $lineno); + } else { + parent::__construct($nodes, [], $lineno, $tag); + } } public function compile(Compiler $compiler): void diff --git a/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php b/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php index 41504050f74f8..c9c0ce80c1b2d 100644 --- a/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php +++ b/src/Symfony/Bridge/Twig/Tests/TokenParser/FormThemeTokenParserTest.php @@ -14,6 +14,7 @@ use PHPUnit\Framework\TestCase; use Symfony\Bridge\Twig\Node\FormThemeNode; use Symfony\Bridge\Twig\TokenParser\FormThemeTokenParser; +use Twig\Attribute\FirstClassTwigCallableReady; use Twig\Environment; use Twig\Loader\LoaderInterface; use Twig\Node\Expression\ArrayExpression; @@ -35,6 +36,10 @@ public function testCompile($source, $expected) $stream = $env->tokenize($source); $parser = new Parser($env); + if (class_exists(FirstClassTwigCallableReady::class)) { + $expected->setNodeTag('form_theme'); + } + $expected->setSourceContext($source); $this->assertEquals($expected, $parser->parse($stream)->getNode('body')->getNode(0));