Fix template name in error for an unknown dynamic extends called from an include

This commit is contained in:
Fabien Potencier
2024-09-24 20:53:17 +02:00
parent efc527ea65
commit 4824f2a4a3
2 changed files with 22 additions and 15 deletions
+8 -15
View File
@@ -80,23 +80,16 @@ abstract class Template
return $this->parent;
}
try {
if (!$parent = $this->doGetParent($context)) {
return false;
}
if (!$parent = $this->doGetParent($context)) {
return false;
}
if ($parent instanceof self || $parent instanceof TemplateWrapper) {
return $this->parents[$parent->getSourceContext()->getName()] = $parent;
}
if ($parent instanceof self || $parent instanceof TemplateWrapper) {
return $this->parents[$parent->getSourceContext()->getName()] = $parent;
}
if (!isset($this->parents[$parent])) {
$this->parents[$parent] = $this->loadTemplate($parent);
}
} catch (LoaderError $e) {
$e->setSourceContext(null);
$e->guess();
throw $e;
if (!isset($this->parents[$parent])) {
$this->parents[$parent] = $this->loadTemplate($parent);
}
return $this->parents[$parent];
@@ -0,0 +1,14 @@
--TEST--
"extends" tag
--TEMPLATE--
{{ include('included.twig') }}
--TEMPLATE(included.twig)--
{% extends dynamic %}
--DATA--
return ['dynamic' => 'unknown.twig']
--EXCEPTION--
Twig\Error\LoaderError: Template "unknown.twig" is not defined in "included.twig" at line 5.