From 6da72c6d8cf0069eb5d3e805480c41d7be996ba0 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 20 Mar 2018 04:54:27 +0100 Subject: [PATCH] fixed block names unicity --- lib/Twig/Parser.php | 2 +- .../regression/block_names_unicity.test | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 test/Twig/Tests/Fixtures/regression/block_names_unicity.test diff --git a/lib/Twig/Parser.php b/lib/Twig/Parser.php index 1d6d82090..6de879a58 100644 --- a/lib/Twig/Parser.php +++ b/lib/Twig/Parser.php @@ -50,7 +50,7 @@ class Twig_Parser implements Twig_ParserInterface public function getVarName() { - return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->varNameSalt++)); + return sprintf('__internal_%s', hash('sha256', __METHOD__.$this->stream->getSourceContext()->getCode().$this->varNameSalt++)); } /** diff --git a/test/Twig/Tests/Fixtures/regression/block_names_unicity.test b/test/Twig/Tests/Fixtures/regression/block_names_unicity.test new file mode 100644 index 000000000..40c067391 --- /dev/null +++ b/test/Twig/Tests/Fixtures/regression/block_names_unicity.test @@ -0,0 +1,19 @@ +--TEST-- +Block names are unique per template +--TEMPLATE-- +{% extends 'layout' %} +{% block content -%} + {% filter title -%} + second + {% endfilter %} +{% endblock %} +--TEMPLATE(layout)-- +{% filter title -%} + first +{% endfilter %} +{% block content %}{% endblock %} +--DATA-- +return array(); +--EXPECT-- +First +Second