Use named arguments

This commit is contained in:
Fabien Potencier
2020-12-29 10:10:10 +01:00
parent a64561b420
commit bce22e4c32
2 changed files with 21 additions and 11 deletions
+19 -9
View File
@@ -70,17 +70,27 @@ class GetAttrExpression extends AbstractExpression
;
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(')')
;
}
+2 -2
View File
@@ -43,7 +43,7 @@ class GetAttrTest extends NodeTestCase
$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 @@ class GetAttrTest extends NodeTestCase
$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;
}