From 83efde6a4d8326ba8430727cbd8990d67a03a67d Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 7 Mar 2019 10:58:47 +0100 Subject: [PATCH] Revert "re-implemented the spaceless tag to reuse the filter tag logic" This reverts commit 743767bce86e1d8b9a23c9a960c7abfda2f1717b. --- src/Node/SpacelessNode.php | 2 -- src/TokenParser/SpacelessTokenParser.php | 19 +++---------------- 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/src/Node/SpacelessNode.php b/src/Node/SpacelessNode.php index 6d2b1958a..9beebf32c 100644 --- a/src/Node/SpacelessNode.php +++ b/src/Node/SpacelessNode.php @@ -18,8 +18,6 @@ use Twig\Compiler; * * It removes spaces between HTML tags. * - * @internal Not used anymore, to be removed in 3.0 - * * @author Fabien Potencier */ class SpacelessNode extends Node diff --git a/src/TokenParser/SpacelessTokenParser.php b/src/TokenParser/SpacelessTokenParser.php index 3c3de4390..5b5656bc6 100644 --- a/src/TokenParser/SpacelessTokenParser.php +++ b/src/TokenParser/SpacelessTokenParser.php @@ -11,10 +11,7 @@ namespace Twig\TokenParser; -use Twig\Node\BlockNode; -use Twig\Node\Expression\BlockReferenceExpression; -use Twig\Node\Expression\ConstantExpression; -use Twig\Node\PrintNode; +use Twig\Node\SpacelessNode; use Twig\Token; /** @@ -33,23 +30,13 @@ class SpacelessTokenParser extends AbstractTokenParser { public function parse(Token $token) { - $this->parser->getStream()->injectTokens([ - new Token(Token::NAME_TYPE, 'spaceless', $token->getLine()), - ]); + $lineno = $token->getLine(); - $name = $this->parser->getVarName(); - $ref = new BlockReferenceExpression(new ConstantExpression($name, $token->getLine()), null, $token->getLine(), $this->getTag()); - - $filter = $this->parser->getExpressionParser()->parseFilterExpressionRaw($ref, $this->getTag()); $this->parser->getStream()->expect(Token::BLOCK_END_TYPE); - $body = $this->parser->subparse([$this, 'decideSpacelessEnd'], true); $this->parser->getStream()->expect(Token::BLOCK_END_TYPE); - $block = new BlockNode($name, $body, $token->getLine()); - $this->parser->setBlock($name, $block); - - return new PrintNode($filter, $token->getLine(), $this->getTag()); + return new SpacelessNode($body, $lineno, $this->getTag()); } public function decideSpacelessEnd(Token $token)