added an exception when misusing macro calls (refs #922)
authorFabien Potencier <fabien.potencier@gmail.com>
Fri, 7 Dec 2012 15:09:05 +0000 (16:09 +0100)
committerFabien Potencier <fabien.potencier@gmail.com>
Fri, 7 Dec 2012 15:14:24 +0000 (16:14 +0100)
lib/Twig/ExpressionParser.php

index 6a555e1..dc49c49 100644 (file)
@@ -393,6 +393,10 @@ class Twig_ExpressionParser
         }
 
         if ($node instanceof Twig_Node_Expression_Name && null !== $alias = $this->parser->getImportedSymbol('template', $node->getAttribute('name'))) {
+            if (!$arg instanceof Twig_Node_Expression_Constant) {
+                throw new Twig_Error_Syntax(sprintf('Dynamic macro names are not supported (called on "%s")', $node->getAttribute('name')), $token->getLine(), $this->parser->getFilename());
+            }
+
             $node = new Twig_Node_Expression_MethodCall($node, 'get'.$arg->getAttribute('value'), $arguments, $lineno);
             $node->setAttribute('safe', true);