From 421d8722f025acfeb6fa952905ed3108089fd90e Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 16 Aug 2017 08:11:17 +0200 Subject: [PATCH] ensured that the use TokenParser returns a node instance --- CHANGELOG | 1 + lib/Twig/TokenParser/Use.php | 2 ++ .../Fixtures/tags/use/use_with_parent.test | 24 +++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 test/Twig/Tests/Fixtures/tags/use/use_with_parent.test diff --git a/CHANGELOG b/CHANGELOG index b1b2fa541..3a188adec 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ * 1.35.0 (2017-XX-XX) + * fixed use TokenParser to return an empty Node * added RuntimeExtensionInterface * added circular reference detection when loading templates diff --git a/lib/Twig/TokenParser/Use.php b/lib/Twig/TokenParser/Use.php index 154c0ad12..f15a91ea0 100644 --- a/lib/Twig/TokenParser/Use.php +++ b/lib/Twig/TokenParser/Use.php @@ -57,6 +57,8 @@ class Twig_TokenParser_Use extends Twig_TokenParser $stream->expect(Twig_Token::BLOCK_END_TYPE); $this->parser->addTrait(new Twig_Node(array('template' => $template, 'targets' => new Twig_Node($targets)))); + + return new Twig_Node(); } public function getTag() diff --git a/test/Twig/Tests/Fixtures/tags/use/use_with_parent.test b/test/Twig/Tests/Fixtures/tags/use/use_with_parent.test new file mode 100644 index 000000000..3fe2ad83c --- /dev/null +++ b/test/Twig/Tests/Fixtures/tags/use/use_with_parent.test @@ -0,0 +1,24 @@ +--TEST-- +"use" tag with a parent block +--TEMPLATE-- +{% extends "parent.twig" %} + +{% use 'blocks.twig' %} + +{% block body %} + {{ parent() -}} + CHILD + {{ block('content') }} +{% endblock %} +--TEMPLATE(parent.twig)-- +{% block body %} + PARENT +{% endblock %} +--TEMPLATE(blocks.twig)-- +{% block content 'BLOCK' %} +--DATA-- +return array() +--EXPECT-- +PARENT +CHILD + BLOCK