Skip to content

Commit d248f95

Browse files
committed
Move to PHPStan level 5
1 parent 9aefb83 commit d248f95

File tree

12 files changed

+32
-10
lines changed

12 files changed

+32
-10
lines changed

phpstan.neon.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ includes:
22
- phpstan-baseline.neon
33

44
parameters:
5-
level: 4
5+
level: 5
66
paths:
77
- src
88
excludePaths:

src/Environment.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ public function resolveTemplate(string|TemplateWrapper|array $names): TemplateWr
495495
return $this->load($name);
496496
}
497497

498-
throw new LoaderError(\sprintf('Unable to find one of the following templates: "%s".', implode('", "', $names)));
498+
throw new LoaderError(\sprintf('Unable to find one of the following templates: "%s".', implode('", "', array_map(fn ($name) => $name instanceof TemplateWrapper ? $name->getTemplateName() : $name, $names))));
499499
}
500500

501501
/**

src/ExpressionParser/Infix/ArgumentsTrait.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Twig\ExpressionParser\Infix;
1313

1414
use Twig\Error\SyntaxError;
15+
use Twig\Node\Expression\AbstractExpression;
1516
use Twig\Node\Expression\ArrayExpression;
1617
use Twig\Node\Expression\Binary\SetBinary;
1718
use Twig\Node\Expression\Unary\SpreadUnary;
@@ -27,6 +28,7 @@ private function parseCallableArguments(Parser $parser, int $line, bool $parseOp
2728
{
2829
$arguments = new ArrayExpression([], $line);
2930
foreach ($this->parseNamedArguments($parser, $parseOpenParenthesis) as $k => $n) {
31+
/** @var AbstractExpression $n */
3032
$arguments->addElement($n, new LocalVariable($k, $line));
3133
}
3234

src/ExpressionParser/Infix/FunctionExpressionParser.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use Twig\Node\Expression\AbstractExpression;
2121
use Twig\Node\Expression\MacroReferenceExpression;
2222
use Twig\Node\Expression\Variable\ContextVariable;
23+
use Twig\Node\Expression\Variable\TemplateVariable;
2324
use Twig\Parser;
2425
use Twig\Token;
2526

@@ -40,7 +41,10 @@ public function parse(Parser $parser, AbstractExpression $expr, Token $token): A
4041
$name = $expr->getAttribute('name');
4142

4243
if (null !== $alias = $parser->getImportedSymbol('function', $name)) {
43-
return new MacroReferenceExpression($alias['node']->getNode('var'), $alias['name'], $this->parseCallableArguments($parser, $line, false), $line);
44+
/** @var TemplateVariable $var */
45+
$var = $alias['node']->getNode('var');
46+
47+
return new MacroReferenceExpression($var, $alias['name'], $this->parseCallableArguments($parser, $line, false), $line);
4448
}
4549

4650
$args = $this->parseNamedArguments($parser, false);

src/ExpressionParser/Infix/IsExpressionParser.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use Twig\Node\Expression\ArrayExpression;
2020
use Twig\Node\Expression\MacroReferenceExpression;
2121
use Twig\Node\Expression\Variable\ContextVariable;
22+
use Twig\Node\Expression\Variable\TemplateVariable;
2223
use Twig\Node\Nodes;
2324
use Twig\Parser;
2425
use Twig\Token;
@@ -43,7 +44,9 @@ public function parse(Parser $parser, AbstractExpression $expr, Token $token): A
4344
}
4445

4546
if ('defined' === $test->getName() && $expr instanceof ContextVariable && null !== $alias = $parser->getImportedSymbol('function', $expr->getAttribute('name'))) {
46-
$expr = new MacroReferenceExpression($alias['node']->getNode('var'), $alias['name'], new ArrayExpression([], $expr->getTemplateLine()), $expr->getTemplateLine());
47+
/** @var TemplateVariable $var */
48+
$var = $alias['node']->getNode('var');
49+
$expr = new MacroReferenceExpression($var, $alias['name'], new ArrayExpression([], $expr->getTemplateLine()), $expr->getTemplateLine());
4750
}
4851

4952
return new ($test->getNodeClass())($expr, $test, $arguments, $stream->getCurrent()->getLine());

src/Extension/CoreExtension.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2041,7 +2041,10 @@ public static function parseAttributeFunction(Parser $parser, Node $fakeNode, $a
20412041
$dep->triggerDeprecation($src->getPath() ?: $src->getName(), $line);
20422042
*/
20432043

2044-
return new GetAttrExpression($args[0], $args[1], $args[2] ?? null, Template::ANY_CALL, $line);
2044+
/** @var ArrayExpression|ContextVariable|null $arguments */
2045+
$arguments = $args[2] ?? null;
2046+
2047+
return new GetAttrExpression($args[0], $args[1], $arguments, Template::ANY_CALL, $line);
20452048
}
20462049

20472050
/**

src/Node/Expression/Binary/MatchesBinary.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313

1414
use Twig\Compiler;
1515
use Twig\Error\SyntaxError;
16+
use Twig\Node\Expression\AbstractExpression;
1617
use Twig\Node\Expression\ConstantExpression;
1718
use Twig\Node\Expression\ReturnBoolInterface;
18-
use Twig\Node\Node;
1919

2020
class MatchesBinary extends AbstractBinary implements ReturnBoolInterface
2121
{
22-
public function __construct(Node $left, Node $right, int $lineno)
22+
public function __construct(AbstractExpression $left, AbstractExpression $right, int $lineno)
2323
{
2424
if ($right instanceof ConstantExpression) {
2525
$regexp = $right->getAttribute('value');

src/Node/Expression/Filter/DefaultFilter.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public function __construct(AbstractExpression $node, TwigFilter $filter, Node $
4242

4343
if ('default' === $name && ($node instanceof ContextVariable || $node instanceof GetAttrExpression)) {
4444
$test = new DefinedTest(clone $node, new TwigTest('defined'), new EmptyNode(), $node->getTemplateLine());
45+
/** @var AbstractExpression $false */
4546
$false = \count($arguments) ? $arguments->getNode(0) : new ConstantExpression('', $node->getTemplateLine());
4647

4748
$node = new ConditionalTernary($test, $default, $false, $node->getTemplateLine());

src/Node/Expression/ListExpression.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class ListExpression extends AbstractExpression
1818
{
1919
/**
20-
* @param array<ContextVariable> $items
20+
* @param array<AbstractExpression> $items
2121
*/
2222
public function __construct(array $items, int $lineno)
2323
{

src/Node/IfNode.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
use Twig\Attribute\YieldReady;
1616
use Twig\Compiler;
17+
use Twig\Node\Expression\AbstractExpression;
1718
use Twig\Node\Expression\ReturnPrimitiveTypeInterface;
1819
use Twig\Node\Expression\Test\TrueTest;
1920
use Twig\TwigTest;
@@ -31,6 +32,7 @@ public function __construct(Node $tests, ?Node $else, int $lineno)
3132
for ($i = 0, $count = \count($tests); $i < $count; $i += 2) {
3233
$test = $tests->getNode((string) $i);
3334
if (!$test instanceof ReturnPrimitiveTypeInterface) {
35+
/** @var AbstractExpression $test */
3436
$tests->setNode($i, new TrueTest($test, new TwigTest('true'), null, $test->getTemplateLine()));
3537
}
3638
}

0 commit comments

Comments
 (0)