Fix optimizer mode validation in OptimizerNodeVisitor

This commit is contained in:
Fabien Potencier
2024-07-27 18:03:53 +02:00
parent 1920e284a9
commit 0e6d717f2d
3 changed files with 13 additions and 1 deletions
+1
View File
@@ -1,5 +1,6 @@
# 3.11.0 (2024-XX-XX)
* Fix optimizer mode validation in `OptimizerNodeVisitor`
* Add the possibility to yield from a generator in `PrintNode`
* Add the `shuffle` filter
* Add the `singular` and `plural` filters in `StringExtension`
+1 -1
View File
@@ -55,7 +55,7 @@ final class OptimizerNodeVisitor implements NodeVisitorInterface
*/
public function __construct(int $optimizers = -1)
{
if ($optimizers > (self::OPTIMIZE_FOR | self::OPTIMIZE_RAW_FILTER)) {
if ($optimizers > (self::OPTIMIZE_FOR | self::OPTIMIZE_RAW_FILTER | self::OPTIMIZE_TEXT_NODES)) {
throw new \InvalidArgumentException(\sprintf('Optimizer mode "%s" is not valid.', $optimizers));
}
+11
View File
@@ -19,10 +19,21 @@ use Twig\Node\Expression\NameExpression;
use Twig\Node\Expression\ParentExpression;
use Twig\Node\ForNode;
use Twig\Node\Node;
use Twig\NodeVisitor\OptimizerNodeVisitor;
use Twig\Source;
class OptimizerTest extends TestCase
{
public function testConstructor()
{
$this->expectNotToPerformAssertions();
new OptimizerNodeVisitor(
OptimizerNodeVisitor::OPTIMIZE_FOR
| OptimizerNodeVisitor::OPTIMIZE_RAW_FILTER
| OptimizerNodeVisitor::OPTIMIZE_TEXT_NODES
);
}
public function testRenderBlockOptimizer()
{
$env = new Environment(new ArrayLoader(), ['cache' => false, 'autoescape' => false]);