diff --git a/src/Node/Expression/GetAttrExpression.php b/src/Node/Expression/GetAttrExpression.php index e6a75ce9404..4a993f0981c 100644 --- a/src/Node/Expression/GetAttrExpression.php +++ b/src/Node/Expression/GetAttrExpression.php @@ -70,17 +70,27 @@ public function compile(Compiler $compiler): void ; if ($this->hasNode('arguments')) { - $compiler->raw(', ')->subcompile($this->getNode('arguments')); - } else { - $compiler->raw(', []'); + $compiler->raw(', arguments: ')->subcompile($this->getNode('arguments')); } - $compiler->raw(', ') - ->repr($this->getAttribute('type')) - ->raw(', ')->repr($this->getAttribute('is_defined_test')) - ->raw(', ')->repr($this->getAttribute('ignore_strict_check')) - ->raw(', ')->repr($env->hasExtension(SandboxExtension::class)) - ->raw(', ')->repr($this->getNode('node')->getTemplateLine()) + if (Template::ANY_CALL !== $type = $this->getAttribute('type')) { + $compiler->raw(', type: ')->repr($type); + } + + if ($this->getAttribute('is_defined_test')) { + $compiler->raw(', isDefinedTest: true'); + } + + if ($this->getAttribute('ignore_strict_check')) { + $compiler->raw(', ignoreStrictCheck: true'); + } + + if ($env->hasExtension(SandboxExtension::class)) { + $compiler->raw(', sandboxed: true'); + } + + $compiler + ->raw(', lineno: ')->repr($this->getNode('node')->getTemplateLine()) ->raw(')') ; } diff --git a/src/Test/IntegrationTestCase.php b/src/Test/IntegrationTestCase.php index 2e4268d22f8..cadf4b57bbc 100644 --- a/src/Test/IntegrationTestCase.php +++ b/src/Test/IntegrationTestCase.php @@ -11,6 +11,7 @@ namespace Twig\Test; +use PHPUnit\Framework\Constraint\Exception; use PHPUnit\Framework\TestCase; use Twig\Environment; use Twig\Error\Error; @@ -235,8 +236,7 @@ protected function doIntegrationTest($file, $message, $condition, $templates, $e if (false !== $exception) { [$class] = explode(':', $exception); - $constraintClass = class_exists('PHPUnit\Framework\Constraint\Exception') ? 'PHPUnit\Framework\Constraint\Exception' : 'PHPUnit_Framework_Constraint_Exception'; - $this->assertThat(null, new $constraintClass($class)); + $this->assertThat(null, new Exception($class)); } $expected = trim($match[3], "\n "); diff --git a/tests/Node/Expression/GetAttrTest.php b/tests/Node/Expression/GetAttrTest.php index c76fb3992d5..e69f78c80d6 100644 --- a/tests/Node/Expression/GetAttrTest.php +++ b/tests/Node/Expression/GetAttrTest.php @@ -43,7 +43,7 @@ public function getTests() $attr = new ConstantExpression('bar', 1); $args = new ArrayExpression([], 1); $node = new GetAttrExpression($expr, $attr, $args, Template::ANY_CALL, 1); - $tests[] = [$node, sprintf('%s%s, "bar", [], "any", false, false, false, 1)', $this->getAttributeGetter(), $this->getVariableGetter('foo', 1))]; + $tests[] = [$node, sprintf('%s%s, "bar", arguments: [], lineno: 1)', $this->getAttributeGetter(), $this->getVariableGetter('foo', 1))]; $node = new GetAttrExpression($expr, $attr, $args, Template::ARRAY_CALL, 1); $tests[] = [$node, '(($__internal_%s = // line 1'."\n". @@ -53,7 +53,7 @@ public function getTests() $args->addElement(new NameExpression('foo', 1)); $args->addElement(new ConstantExpression('bar', 1)); $node = new GetAttrExpression($expr, $attr, $args, Template::METHOD_CALL, 1); - $tests[] = [$node, sprintf('%s%s, "bar", [%s, "bar"], "method", false, false, false, 1)', $this->getAttributeGetter(), $this->getVariableGetter('foo', 1), $this->getVariableGetter('foo'))]; + $tests[] = [$node, sprintf('%s%s, "bar", arguments: [%s, "bar"], type: "method", lineno: 1)', $this->getAttributeGetter(), $this->getVariableGetter('foo', 1), $this->getVariableGetter('foo'))]; return $tests; }