Merge branch '1.x' into 2.x

* 1.x:
  tweaked error messages
  fixed wrong error message on "import" and "from"
  bumped version to 1.41.1-DEV
  prepared the 1.41.0 release
This commit is contained in:
Fabien Potencier
2019-05-16 11:42:35 +02:00
6 changed files with 28 additions and 5 deletions
+5 -1
View File
@@ -229,7 +229,11 @@
* improved the performance of the filesystem loader
* removed features that were deprecated in 1.x
* 1.41.0 (2019-XX-XX)
* 1.41.1 (2019-XX-XX)
* fixed wrong error message on "import" and "from"
* 1.41.0 (2019-05-14)
* fixed support for PHP 7.4
* added "filter", "map", and "reduce" filters (and support for arrow functions)
+1 -1
View File
@@ -26,7 +26,7 @@ final class FromTokenParser extends AbstractTokenParser
{
$macro = $this->parser->getExpressionParser()->parseExpression();
$stream = $this->parser->getStream();
$stream->expect('import');
$stream->expect(/* Token::NAME_TYPE */ 5, 'import');
$targets = [];
do {
+1 -1
View File
@@ -25,7 +25,7 @@ final class ImportTokenParser extends AbstractTokenParser
public function parse(Token $token)
{
$macro = $this->parser->getExpressionParser()->parseExpression();
$this->parser->getStream()->expect('as');
$this->parser->getStream()->expect(/* Token::NAME_TYPE */ 5, 'as');
$var = new AssignNameExpression($this->parser->getStream()->expect(/* Token::NAME_TYPE */ 5)->getValue(), $token->getLine());
$this->parser->getStream()->expect(/* Token::BLOCK_END_TYPE */ 3);
+3 -2
View File
@@ -73,9 +73,10 @@ final class TokenStream
$token = $this->tokens[$this->current];
if (!$token->test($type, $value)) {
$line = $token->getLine();
throw new SyntaxError(sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s).',
throw new SyntaxError(sprintf('%sUnexpected token "%s"%s ("%s" expected%s).',
$message ? $message.'. ' : '',
Token::typeToEnglish($token->getType()), $token->getValue(),
Token::typeToEnglish($token->getType()),
$token->getValue() ? sprintf(' of value "%s"', $token->getValue()) : '',
Token::typeToEnglish($type), $value ? sprintf(' with value "%s"', $value) : ''),
$line,
$this->source
@@ -0,0 +1,8 @@
--TEST--
"from" tag with syntax error
--TEMPLATE--
{% from 'forms.twig' %}
--DATA--
return []
--EXCEPTION--
Twig\Error\SyntaxError: Unexpected token "end of statement block" ("name" expected with value "import") in "index.twig" at line 2.
@@ -0,0 +1,10 @@
--TEST--
"import" tag with reserved name
--TEMPLATE--
{% import 'forms.twig' %}
{{ macros.parent() }}
--DATA--
return []
--EXCEPTION--
Twig\Error\SyntaxError: Unexpected token "end of statement block" ("name" expected with value "as") in "index.twig" at line 2.