From ac0b54c141548050c675aa14585c8818f12353b6 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 13 Dec 2010 15:59:12 +0100 Subject: [PATCH] removed the 'without loop' attribute for the 'for' tag --- CHANGELOG | 2 ++ doc/02-Twig-for-Template-Designers.markdown | 4 +--- lib/Twig/Node/For.php | 4 ++-- lib/Twig/TokenParser/For.php | 9 +-------- test/Twig/Tests/Node/ForTest.php | 21 ++++++++++----------- 5 files changed, 16 insertions(+), 24 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index fe2e680..6f49c2d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -5,6 +5,8 @@ Backward incompatibilities: * The Escaper extension is enabled by default, which means that all displayed variables are now automatically escaped. You can revert to the previous behavior by removing the extension via $env->removeExtension('escaper'). + * removed the "without loop" attribute for the "for" tag (not needed anymore + as the Optimizer take care of that for most cases) Changes: diff --git a/doc/02-Twig-for-Template-Designers.markdown b/doc/02-Twig-for-Template-Designers.markdown index dc9d53e..f9e0236 100644 --- a/doc/02-Twig-for-Template-Designers.markdown +++ b/doc/02-Twig-for-Template-Designers.markdown @@ -485,9 +485,7 @@ If you need a step different from 1, you can use the `range` filter instead: * {{ i }} {% endfor %} -Inside of a `for` loop block you can access some special variables (if you -don't need them, you can add `without loop` at the end of the `for` statement -for a small speed boost): +Inside of a `for` loop block you can access some special variables: | Variable | Description | --------------------- | ------------------------------------------------------------- diff --git a/lib/Twig/Node/For.php b/lib/Twig/Node/For.php index 38ad626..4580c2f 100644 --- a/lib/Twig/Node/For.php +++ b/lib/Twig/Node/For.php @@ -18,9 +18,9 @@ */ class Twig_Node_For extends Twig_Node { - public function __construct(Twig_Node_Expression_AssignName $keyTarget, Twig_Node_Expression_AssignName $valueTarget, Twig_Node_Expression $seq, Twig_NodeInterface $body, Twig_NodeInterface $else = null, $withLoop = false, Twig_Node_Expression $joinedBy = null, $lineno, $tag = null) + public function __construct(Twig_Node_Expression_AssignName $keyTarget, Twig_Node_Expression_AssignName $valueTarget, Twig_Node_Expression $seq, Twig_NodeInterface $body, Twig_NodeInterface $else = null, Twig_Node_Expression $joinedBy = null, $lineno, $tag = null) { - parent::__construct(array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body, 'else' => $else, 'joined_with' => $joinedBy), array('with_loop' => $withLoop), $lineno, $tag); + parent::__construct(array('key_target' => $keyTarget, 'value_target' => $valueTarget, 'seq' => $seq, 'body' => $body, 'else' => $else, 'joined_with' => $joinedBy), array('with_loop' => true), $lineno, $tag); } /** diff --git a/lib/Twig/TokenParser/For.php b/lib/Twig/TokenParser/For.php index 42b71af..6f4477b 100644 --- a/lib/Twig/TokenParser/For.php +++ b/lib/Twig/TokenParser/For.php @@ -25,13 +25,6 @@ class Twig_TokenParser_For extends Twig_TokenParser $this->parser->getStream()->expect(Twig_Token::OPERATOR_TYPE, 'in'); $seq = $this->parser->getExpressionParser()->parseExpression(); - $withLoop = true; - if ($this->parser->getStream()->test('without')) { - $this->parser->getStream()->next(); - $this->parser->getStream()->expect('loop'); - $withLoop = false; - } - $joinedBy = null; if ($this->parser->getStream()->test('joined')) { $this->parser->getStream()->next(); @@ -57,7 +50,7 @@ class Twig_TokenParser_For extends Twig_TokenParser $valueTarget = $targets->getNode(0); } - return new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, $joinedBy, $lineno, $this->getTag()); + return new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $joinedBy, $lineno, $this->getTag()); } public function decideForFork($token) diff --git a/test/Twig/Tests/Node/ForTest.php b/test/Twig/Tests/Node/ForTest.php index 71144f8..06fe129 100644 --- a/test/Twig/Tests/Node/ForTest.php +++ b/test/Twig/Tests/Node/ForTest.php @@ -23,8 +23,8 @@ class Twig_Tests_Node_ForTest extends Twig_Tests_Node_TestCase $seq = new Twig_Node_Expression_Name('items', 0); $body = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0); $else = null; - $withLoop = false; - $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, null, 0); + $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, null, 0); + $node->setAttribute('with_loop', false); $this->assertEquals($keyTarget, $node->getNode('key_target')); $this->assertEquals($valueTarget, $node->getNode('value_target')); @@ -32,10 +32,9 @@ class Twig_Tests_Node_ForTest extends Twig_Tests_Node_TestCase $this->assertEquals($body, $node->getNode('body')); $this->assertEquals(null, $node->getNode('else')); - $this->assertEquals($withLoop, $node->getAttribute('with_loop')); - $else = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0); - $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, null, 0); + $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, null, 0); + $node->setAttribute('with_loop', false); $this->assertEquals($else, $node->getNode('else')); } @@ -57,8 +56,8 @@ class Twig_Tests_Node_ForTest extends Twig_Tests_Node_TestCase $seq = new Twig_Node_Expression_Name('items', 0); $body = new Twig_Node_Print(new Twig_Node_Expression_Name('foo', 0), 0); $else = null; - $withLoop = false; - $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, $withLoop, null, 0); + $node = new Twig_Node_For($keyTarget, $valueTarget, $seq, $body, $else, null, 0); + $node->setAttribute('with_loop', false); $tests[] = array($node, <<setAttribute('with_loop', true); $tests[] = array($node, <<setAttribute('with_loop', true); $tests[] = array($node, <<