bug #4867 Fix PHPStan errors on 4.x (fabpot)

This PR was merged into the 4.x branch.

Discussion
----------

Fix PHPStan errors on 4.x

Commits
-------

5e726bcce1 Fix PHPStan errors on 4.x
This commit is contained in:
Fabien Potencier
2026-07-19 18:22:03 +02:00
8 changed files with 16 additions and 18 deletions
+1 -1
View File
@@ -481,7 +481,7 @@ class Environment
return $this->load($name);
}
throw new LoaderError(\sprintf('Unable to find one of the following templates: "%s".', implode('", "', array_map(static fn ($name) => $name instanceof TemplateWrapper ? $name->getTemplateName() : $name, $names))));
throw new LoaderError(\sprintf('Unable to find one of the following templates: "%s".', implode('", "', $names)));
}
public function setLexer(Lexer $lexer): void
+2 -2
View File
@@ -13,13 +13,13 @@
namespace Twig\Node\Expression\Binary;
use Twig\Compiler;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\ReturnBoolInterface;
use Twig\Node\Expression\Test\TrueTest;
use Twig\Node\Node;
class AndBinary extends AbstractBinary implements ReturnBoolInterface
{
public function __construct(Node $left, Node $right, int $lineno)
public function __construct(AbstractExpression $left, AbstractExpression $right, int $lineno)
{
parent::__construct(TrueTest::wrap($left), TrueTest::wrap($right), $lineno);
}
+1 -6
View File
@@ -15,15 +15,10 @@ use Twig\Compiler;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\OperatorEscapeInterface;
use Twig\Node\Expression\Test\TrueTest;
use Twig\Node\Node;
final class ElvisBinary extends AbstractBinary implements OperatorEscapeInterface
{
/**
* @param AbstractExpression $left
* @param AbstractExpression $right
*/
public function __construct(Node $left, Node $right, int $lineno)
public function __construct(AbstractExpression $left, AbstractExpression $right, int $lineno)
{
parent::__construct($left, $right, $lineno);
+2 -2
View File
@@ -13,13 +13,13 @@
namespace Twig\Node\Expression\Binary;
use Twig\Compiler;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\ReturnBoolInterface;
use Twig\Node\Expression\Test\TrueTest;
use Twig\Node\Node;
class OrBinary extends AbstractBinary implements ReturnBoolInterface
{
public function __construct(Node $left, Node $right, int $lineno)
public function __construct(AbstractExpression $left, AbstractExpression $right, int $lineno)
{
parent::__construct(TrueTest::wrap($left), TrueTest::wrap($right), $lineno);
}
+2 -2
View File
@@ -13,13 +13,13 @@
namespace Twig\Node\Expression\Binary;
use Twig\Compiler;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\ReturnBoolInterface;
use Twig\Node\Expression\Test\TrueTest;
use Twig\Node\Node;
class XorBinary extends AbstractBinary implements ReturnBoolInterface
{
public function __construct(Node $left, Node $right, int $lineno)
public function __construct(AbstractExpression $left, AbstractExpression $right, int $lineno)
{
parent::__construct(TrueTest::wrap($left), TrueTest::wrap($right), $lineno);
}
+2 -2
View File
@@ -12,9 +12,9 @@
namespace Twig\Node\Expression\Test;
use Twig\Compiler;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\ReturnPrimitiveTypeInterface;
use Twig\Node\Expression\TestExpression;
use Twig\Node\Node;
use Twig\TwigTest;
/**
@@ -26,7 +26,7 @@ use Twig\TwigTest;
*/
class TrueTest extends TestExpression
{
public static function wrap(Node $node): Node
public static function wrap(AbstractExpression $node): AbstractExpression
{
if ($node instanceof ReturnPrimitiveTypeInterface) {
return $node;
+2 -2
View File
@@ -13,13 +13,13 @@
namespace Twig\Node\Expression\Unary;
use Twig\Compiler;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\ReturnBoolInterface;
use Twig\Node\Expression\Test\TrueTest;
use Twig\Node\Node;
class NotUnary extends AbstractUnary implements ReturnBoolInterface
{
public function __construct(Node $node, int $lineno)
public function __construct(AbstractExpression $node, int $lineno)
{
parent::__construct(TrueTest::wrap($node), $lineno);
}
+4 -1
View File
@@ -14,6 +14,7 @@ namespace Twig\Node;
use Twig\Attribute\YieldReady;
use Twig\Compiler;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\Test\TrueTest;
/**
@@ -27,7 +28,9 @@ class IfNode extends Node
public function __construct(Node $tests, ?Node $else, int $lineno)
{
for ($i = 0, $count = \count($tests); $i < $count; $i += 2) {
$tests->setNode($i, TrueTest::wrap($tests->getNode((string) $i)));
/** @var AbstractExpression $test */
$test = $tests->getNode((string) $i);
$tests->setNode($i, TrueTest::wrap($test));
}
$nodes = ['tests' => $tests];
if (null !== $else) {