diff --git a/src/Symfony/Component/ExpressionLanguage/Compiler.php b/src/Symfony/Component/ExpressionLanguage/Compiler.php index 10f30ed49b55b..11260fa33cb88 100644 --- a/src/Symfony/Component/ExpressionLanguage/Compiler.php +++ b/src/Symfony/Component/ExpressionLanguage/Compiler.php @@ -20,8 +20,8 @@ */ class Compiler implements ResetInterface { - private $source; - private $functions; + private string $source = ''; + private array $functions; public function __construct(array $functions) { diff --git a/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php b/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php index 2bc17b4403ddf..7d4662cedfa68 100644 --- a/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php +++ b/src/Symfony/Component/ExpressionLanguage/ExpressionFunction.php @@ -30,9 +30,9 @@ */ class ExpressionFunction { - private $name; - private $compiler; - private $evaluator; + private string $name; + private \Closure $compiler; + private \Closure $evaluator; /** * @param string $name The function name diff --git a/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php b/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php index cef2662067888..96f2a6f1ad03c 100644 --- a/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php +++ b/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php @@ -24,12 +24,12 @@ class_exists(ParsedExpression::class); */ class ExpressionLanguage { - private $cache; - private $lexer; - private $parser; - private $compiler; + private CacheItemPoolInterface $cache; + private Lexer $lexer; + private Parser $parser; + private Compiler $compiler; - protected $functions = []; + protected array $functions = []; /** * @param ExpressionFunctionProviderInterface[] $providers @@ -122,7 +122,7 @@ public function lint(Expression|string $expression, ?array $names): void */ public function register(string $name, callable $compiler, callable $evaluator) { - if (null !== $this->parser) { + if (isset($this->parser)) { throw new \LogicException('Registering functions after calling evaluate(), compile() or parse() is not supported.'); } @@ -148,27 +148,17 @@ protected function registerFunctions() private function getLexer(): Lexer { - if (null === $this->lexer) { - $this->lexer = new Lexer(); - } - - return $this->lexer; + return $this->lexer ??= new Lexer(); } private function getParser(): Parser { - if (null === $this->parser) { - $this->parser = new Parser($this->functions); - } - - return $this->parser; + return $this->parser ??= new Parser($this->functions); } private function getCompiler(): Compiler { - if (null === $this->compiler) { - $this->compiler = new Compiler($this->functions); - } + $this->compiler ??= new Compiler($this->functions); return $this->compiler->reset(); } diff --git a/src/Symfony/Component/ExpressionLanguage/Node/ConstantNode.php b/src/Symfony/Component/ExpressionLanguage/Node/ConstantNode.php index d7aa4ce4833de..74ed464fe88f7 100644 --- a/src/Symfony/Component/ExpressionLanguage/Node/ConstantNode.php +++ b/src/Symfony/Component/ExpressionLanguage/Node/ConstantNode.php @@ -20,7 +20,7 @@ */ class ConstantNode extends Node { - private $isIdentifier; + private bool $isIdentifier; public function __construct(mixed $value, bool $isIdentifier = false) { diff --git a/src/Symfony/Component/ExpressionLanguage/ParsedExpression.php b/src/Symfony/Component/ExpressionLanguage/ParsedExpression.php index 1416db1784c46..ca684ccd5f10a 100644 --- a/src/Symfony/Component/ExpressionLanguage/ParsedExpression.php +++ b/src/Symfony/Component/ExpressionLanguage/ParsedExpression.php @@ -20,7 +20,7 @@ */ class ParsedExpression extends Expression { - private $nodes; + private Node $nodes; public function __construct(string $expression, Node $nodes) { diff --git a/src/Symfony/Component/ExpressionLanguage/Parser.php b/src/Symfony/Component/ExpressionLanguage/Parser.php index f5a2a42386772..e5ae97719638f 100644 --- a/src/Symfony/Component/ExpressionLanguage/Parser.php +++ b/src/Symfony/Component/ExpressionLanguage/Parser.php @@ -26,12 +26,12 @@ class Parser public const OPERATOR_LEFT = 1; public const OPERATOR_RIGHT = 2; - private $stream; - private $unaryOperators; - private $binaryOperators; - private $functions; - private $names; - private $lint; + private TokenStream $stream; + private array $unaryOperators; + private array $binaryOperators; + private array $functions; + private ?array $names; + private bool $lint = false; public function __construct(array $functions) { @@ -124,8 +124,7 @@ private function doParse(TokenStream $stream, ?array $names = []): Node\Node throw new SyntaxError(sprintf('Unexpected token "%s" of value "%s".', $stream->current->type, $stream->current->value), $stream->current->cursor, $stream->getExpression()); } - $this->stream = null; - $this->names = null; + unset($this->stream, $this->names); return $node; } diff --git a/src/Symfony/Component/ExpressionLanguage/SerializedParsedExpression.php b/src/Symfony/Component/ExpressionLanguage/SerializedParsedExpression.php index a1f838c030232..56207b09854ca 100644 --- a/src/Symfony/Component/ExpressionLanguage/SerializedParsedExpression.php +++ b/src/Symfony/Component/ExpressionLanguage/SerializedParsedExpression.php @@ -18,7 +18,7 @@ */ class SerializedParsedExpression extends ParsedExpression { - private $nodes; + private string $nodes; /** * @param string $expression An expression diff --git a/src/Symfony/Component/ExpressionLanguage/TokenStream.php b/src/Symfony/Component/ExpressionLanguage/TokenStream.php index a8bac54984e21..a94da8de33389 100644 --- a/src/Symfony/Component/ExpressionLanguage/TokenStream.php +++ b/src/Symfony/Component/ExpressionLanguage/TokenStream.php @@ -20,9 +20,9 @@ class TokenStream { public $current; - private $tokens; - private $position = 0; - private $expression; + private array $tokens; + private int $position = 0; + private string $expression; public function __construct(array $tokens, string $expression = '') {