diff --git a/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php b/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php index 2a3d52a448d10..a4212c1982de3 100644 --- a/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php +++ b/src/Symfony/Component/ExpressionLanguage/Node/BinaryNode.php @@ -152,10 +152,6 @@ public function evaluate(array $functions, array $values): mixed return $left >= $right; case '<=': return $left <= $right; - case 'not in': - return !\in_array($left, $right, true); - case 'in': - return \in_array($left, $right, true); case '+': return $left + $right; case '-': @@ -179,6 +175,8 @@ public function evaluate(array $functions, array $values): mixed case 'matches': return $this->evaluateMatches($right, $left); } + + throw new \LogicException(\sprintf('"%s" does not support the "%s" operator.', __CLASS__, $operator)); } public function toArray(): array diff --git a/src/Symfony/Component/ExpressionLanguage/Tests/Node/BinaryNodeTest.php b/src/Symfony/Component/ExpressionLanguage/Tests/Node/BinaryNodeTest.php index e75a3d4fbb3b7..239d952f73c4a 100644 --- a/src/Symfony/Component/ExpressionLanguage/Tests/Node/BinaryNodeTest.php +++ b/src/Symfony/Component/ExpressionLanguage/Tests/Node/BinaryNodeTest.php @@ -258,4 +258,14 @@ public function testInOperatorStrictness(mixed $value) $this->assertFalse($node->evaluate([], [])); } + + public function testEvaluateUnsupportedOperator() + { + $node = new BinaryNode('unsupported', new ConstantNode(1), new ConstantNode(2)); + + $this->expectException(\LogicException::class); + $this->expectExceptionMessage('"Symfony\Component\ExpressionLanguage\Node\BinaryNode" does not support the "unsupported" operator.'); + + $node->evaluate([], []); + } }